Strona główna Makra / VBA Wydobywanie adresu e-mail z tekstu

Wybrana funkcja

  • ODCH.ŚREDNIE
    Zwraca średnią wartość odchyleń absolutnych punktów danych od ich wartości średniej.
Makra / VBA
Wydobywanie adresu e-mail z tekstu

Makro przedstawione w dalszej części wiadomości pozwala na wydobycie z tekstu pierwszego adresu e-mail. Jeżeli adres ten nie zostanie znaleziony to makro zwraca wartość pustą. W celu ułatwienia używanie tego makra zostało ono zaimplementowane jako funkcja użytkownika o nazwie ExtractEmailAddress.

Użytkownika aby skorzystać z tej funkcji musi tylko jeden argument – tekst w którym nastąpi wyszukanie adresu e-mail. Na poniższym rysunku zostały przedstawione przykłady wykorzystania tej funkcji.

 
Przykład działania funkcji ExtractEmailAddress - Portal Excel w Biznesie.pl

 

Oraz kod w VBA:

Function (s As String) As String
    Dim AtSignLocation As Long
    Dim i As Long
    Dim TempStr As String
    'Znaki dozwolone
    Const CharList As String = "[A-Za-z0-9._-]"
    'Poszukuje wystapienia znaku @
    AtSignLocation = InStr(s, "@")
    If AtSignLocation = 0 Then
        ExtractEmailAddress = "" 'nie znaleziono @
    Else
        TempStr = ""
        'Pobiera pierwsza polowe adresu
        For i = AtSignLocation - 1 To 1 Step -1
            If Mid(s, i, 1) Like CharList Then
                TempStr = Mid(s, i, 1) & TempStr
            Else
                Exit For
            End If
        Next i
        If TempStr = "" Then Exit Function
        'Pobiera druga polowe adresu
        TempStr = TempStr & "@"
        For i = AtSignLocation + 1 To Len(s)
            If Mid(s, i, 1) Like CharList Then
                TempStr = TempStr & Mid(s, i, 1)
            Else
                Exit For
            End If
        Next i
    End If
    'Usuwa koncowa kropke
    If Right(TempStr, 1) = "." Then TempStr = _
       Left(TempStr, Len(TempStr) - 1) 
    ExtractEmailAddress = TempStr
End Function

Funkcja działa w sposób bardzo prosty. Najpierw ustalana jest pozycja występowanie znaku @. Następnie pobierana jest pierwsza część adresu – makro kopiuje znaki dopóki nie napotka na znak, który jest niedozwolony. Podobnie pobierana jest druga część adresu. Na koniec następuje sprawdzenie, czy przypadkiem ostatnim znakiem nie jest kropka. Jeśli tak to jest ona usuwana.

 

Dodaj swój komentarz

Twoje imię:
Twój e-mail:
Temat:
Komentarz:

Pytanie do eksperta

JoomlaWatch Stats 1.2.9 by Matej Koval

Logowanie