UDF - extrahování e -mailové adresy z textu

Anonim

Pokud chcete, aby vám proces pomohl při získávání e -mailové adresy z řetězce, pak je tento článek pro vás. V tomto článku vytvoříme UDF k vytažení e -mailu z textu.

Otázka): Data, která mám, obsahují příliš mnoho informací v textovém formátu. Chci kód VBA, který mi pomůže extrahovat z textu tolik e -mailových ID, aby se minimalizovalo mé ruční úsilí.

Musíme postupovat podle následujících kroků:

  • Klikněte na kartu Vývojář
  • Ze skupiny kódů vyberte Visual Basic

Do standardního modulu zadejte následující kód:

Funkce ExtractEmailFromText (s jako řetězec) jako řetězec Dim AtTheRateSignSymbol jako Long Dim i As Long

Dim TempStr jako řetězec

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

AtTheRateSignSymbol = InStr (s, "@")

Pokud AtTheRateSignSymbol = 0 Pak

ExtractEmailFromText = ""

Jiný

TempStr = ""

Pro i = AtTheRateSignSymbol - 1 až 1 krok -1

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

TempStr = střední (s, i, 1) & TempStr

Jiný

Ukončit pro

Konec If

Příště já

If TempStr = "" Then Exit Function

TempStr = TempStr & "@"

For i = AtTheRateSignSymbol + 1 To Len (s)

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

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

Jiný

Ukončit pro

Konec If

Příště já

Konec If

If Right (TempStr, 1) = "." Potom TempStr = _

Vlevo (TempStr, Len (TempStr) - 1)

ExtractEmailFromText = TempStr

Koncová funkce

  • V buňce B2 je vzorec
  • = ExtractEmailFromText (A2)

Dostaneme výsledek. Viz níže snímek:

Výše uvedený kód extrahuje první e -mailovou adresu v případě, že je v buňce více než 1 ID e -mailu.

Tímto způsobem můžeme načíst e -maily z textu.

Stáhnout - Extrahování e -mailové adresy z textu - xlsm