UDF — Извлечение адреса электронной почты из текста
Если вы хотите, чтобы процесс помог вам получить адрес электронной почты из строки, эта статья для вас. В этой статье мы создадим 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
Если Mid (s, i, 1) Like CharList Then
TempStr = Mid (s, i, 1) & TempStr
Остальное
Выход для
Конец Если
Далее i
Если TempStr = «», то выйти из функции
TempStr = TempStr & «@»
Для i = AtTheRateSignSymbol + 1 To Len (s)
Если Mid (s, i, 1) Like CharList Then
TempStr = TempStr & Mid (s, i, 1)
Остальное
Выход для
Конец Если
Далее i
Конец Если
Если право (TempStr, 1) = «.» Тогда TempStr = _
Left (TempStr, Len (TempStr) — 1)
ExtractEmailFromText = TempStr
Конечная функция
-
В ячейке B2 формула:
* = ExtractEmailFromText (A2)
Получим результат. См. Снимок ниже:
Приведенный выше код извлечет первый адрес электронной почты, если в ячейке более 1 идентификатора электронной почты.
Таким образом, мы можем получать электронную почту из текста.