Diziden e-posta adresini almanıza yardımcı olacak bir işlem istiyorsanız, bu makale tam size göre. Bu yazıda, e-posta kimliğini metinden çekmek için UDF oluşturacağız.
Soru): Elimdeki veriler metin biçiminde çok fazla bilgi içeriyor. Manuel çabalarımı en aza indirmek için metinden olabildiğince çok e-posta kimliği çıkarmama yardımcı olacak bir VBA kodu istiyorum.
Aşağıdaki adımları izlememiz gerekiyor:
- Geliştirici sekmesine tıklayın
- Kod grubundan Visual Basic'i seçin
Standart modüle aşağıdaki kodu girin:
İşlev ExtractEmailFromText(s As String) As String Dim AtTheRateSignSymbol As Long Dim i As LongDize olarak Dim TempStr
Const CharList As String = "[A-Za-z0-9._-]"
AtTheRateSignSymbol = InStr(s, "@")
AtTheRateSignSymbol = 0 ise
ExtractEmailFromText = ""
Başka
TempStr = ""
i için = AtTheRateSignSymbol - 1'e 1 Adım -1
Eğer Orta(lar, i, 1) ise CharList'i Beğen O zaman
TempStr = Orta(lar, i, 1) ve TempStr
Başka
Çıkış İçin
Bitir
sonraki ben
TempStr = "" ise İşlevden Çık
TempStr = TempStr & "@"
i için = AtTheRateSignSymbol + 1 To Len(ler)
Eğer Orta(lar, i, 1) ise CharList'i Beğen O zaman
TempStr = TempStr ve Orta(lar, i, 1)
Başka
Çıkış İçin
Bitir
sonraki ben
Bitir
Eğer Sağ(TempStr, 1) = "." Sonra TempStr = _
Sol(TempStr, Len(TempStr) - 1)
ExtractEmailFromText = TempStr
Bitiş İşlevi
- B2 hücresinde formül şu şekildedir:
- =Metinden E-postayı Çıkar(A2)
sonucu alacağız. Aşağıdaki anlık görüntüye bakın:
Bir hücrede 1'den fazla e-posta kimliği olması durumunda yukarıdaki kod ilk e-posta adresini çıkaracaktır.
Bu şekilde, e-postayı metinden alabiliriz.
İndir - E-posta Adresini Metinden Çıkarma - xlsm