В случай, че искате процес, който да ви помогне при извличането на имейл адреса от низ, тогава тази статия е за вас. В тази статия ще създадем UDF, за да извадим имейл идентификатора от текст.
Въпрос): Данните, които имам, съдържат твърде много информация в текстов формат. Искам код VBA, който да ми помогне да извлека колкото се може повече имейл идентификатори от текста, за да минимизирам ръчните си усилия.
Трябва да следваме следните стъпки:
- Кликнете върху раздела Разработчик
- От групата Кодове изберете Visual Basic
Въведете следния код в стандартния модул:
Функция ExtractEmailFromText (s As String) As String Dim AtTheRateSignSymbol As Long Dim i As LongDim 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