PHÂN TÁCH ĐỊA CHỈ EMAIL TỪ NỘI DUNG VĂN BẢN

Đây là một mẹo giúp giải thích về chức năng VBA, làm thế nào để từ một chuỗi ký tự nhập vào, chức năng này có thể lọc ra và trả về địa chỉ email tìm thấy đầu tiên. Bức hình dưới đây minh họa việc sử dụng chức năng này. Công thức được áp dụng trong ô B2 là:

=ExtractEmailAddress(A2)

Khi không có địa chỉ email nào được phát hiện, chức năng này sẽ xuất ra một chuỗi trống. Hãy lưu ý rằng nó chỉ lọc ra một địa chỉ email đầu tiên mà thôi.

Chức năng này không quá phức tạp. Nó chỉ cần phát hiện ra ký tự “@” và sau đó xác định các ký tự xung quanh ký tự đó.

Function ExtractEmailAddress(s As String) As String
    Dim AtSignLocation As Long
    Dim i As Long
    Dim TempStr As String
    Const CharList As String = "[A-Za-z0-9._-]"
    
    'Xác định vị trí của ký tự @'
    AtSignLocation = InStr(s, "@")
    If AtSignLocation = 0 Then
        ExtractEmailAddress = "" 'không tìm thấy
    Else
        TempStr = ""
        'Lấy phần trước của địa chỉ email'
        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
        'Lấy phần sau'
        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
    'Loại bỏ dấu chấm cuối cùng nếu có'
    If Right(TempStr, 1) = "." Then TempStr = _
       Left(TempStr, Len(TempStr) - 1)
    ExtractEmailAddress = TempStr
End Function

 

Trương Thành Tài

    [submission_id id-lien-he]

    0
      0
      Đơn hàng
      Đơn hàng trốngQuay lại Shop