Strona główna

Wybrana funkcja

  • MAX.A
    Zwraca maksymalną wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych.
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 komentarz


Kod antysapmowy
Odśwież

Książka

Ankieta

Jakiej wersji Excela używasz?
 

Statystyki



Dzisiaj: 2
Wczoraj: 79
Bieżący tydzień: 315
Poprzedni tydzień: 456
Bieżący miesiąc: 1014
Poprzedni miesiąc: 3211
Ogółem: 8022