UDF - Извличане на имейл адрес от текст

Anonim

В случай, че искате процес, който да ви помогне при извличането на имейл адреса от низ, тогава тази статия е за вас. В тази статия ще създадем UDF, за да извадим имейл идентификатора от текст.

Въпрос): Данните, които имам, съдържат твърде много информация в текстов формат. Искам код VBA, който да ми помогне да извлека колкото се може повече имейл идентификатори от текста, за да минимизирам ръчните си усилия.

Трябва да следваме следните стъпки:

  • Кликнете върху раздела Разработчик
  • От групата Кодове изберете Visual Basic

Въведете следния код в стандартния модул:

Функция ExtractEmailFromText (s As String) As String Dim AtTheRateSignSymbol As Long Dim i As Long

Dim TempStr As String

Const CharList As String = "[A-Za-z0-9 ._-]"

AtTheRateSignSymbol = InStr (s, "@")

Ако AtTheRateSignSymbol = 0 Тогава

ExtractEmailFromText = ""

Иначе

TempStr = ""

За i = AtTheRateSignSymbol - 1 към 1 стъпка -1

If Mid (s, i, 1) Like CharList Then

TempStr = Mid (s, i, 1) & TempStr

Иначе

Излезте за

Край Ако

Следва i

Ако TempStr = "" След това излезте от функцията

TempStr = TempStr & "@"

For i = AtTheRateSignSymbol + 1 To Len (s)

If Mid (s, i, 1) Like CharList Then

TempStr = TempStr & Mid (s, i, 1)

Иначе

Излезте за

Край Ако

Следва i

Край Ако

Ако надясно (TempStr, 1) = "." Тогава TempStr = _

Вляво (TempStr, Len (TempStr) - 1)

ExtractEmailFromText = TempStr

Крайна функция

  • В клетка В2 формулата е
  • = ExtractEmailFromText (A2)

Ще получим резултата. Вижте моментната снимка по -долу:

Горният код ще извлече първия имейл адрес, в случай че има повече от 1 имейл име в клетка.

По този начин можем да извлечем имейла от текст.

Изтегляне - Извличане на имейл адрес от текст - xlsm