Если вы хотите, чтобы процесс помог вам получить адрес электронной почты из строки, эта статья для вас. В этой статье мы создадим UDF для извлечения идентификатора электронной почты из текста.

Вопрос): Имеющиеся у меня данные содержат слишком много информации в текстовом формате. Я хочу, чтобы код VBA помог мне извлечь как можно больше идентификаторов электронной почты из текста, чтобы свести к минимуму мои ручные усилия.

Нам нужно выполнить следующие шаги:

Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

img1

===

В стандартный модуль введите следующий код:

Функция 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

Конечная функция

img2

  • В ячейке B2 формула:

* = ExtractEmailFromText (A2)

Получим результат. См. Снимок ниже:

img3

Приведенный выше код извлечет первый адрес электронной почты, если в ячейке более 1 идентификатора электронной почты.

Таким образом, мы можем получать электронную почту из текста.

image 19