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 LongDim 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