UDF – Trích xuất địa chỉ email từ văn bản
Trong trường hợp bạn muốn một quy trình giúp bạn truy xuất địa chỉ email từ chuỗi thì bài viết này là dành cho bạn. Trong bài viết này, chúng tôi sẽ tạo UDF để kéo id email từ văn bản.
Câu hỏi): Dữ liệu tôi có chứa quá nhiều thông tin ở định dạng văn bản. Tôi muốn có mã VBA để giúp tôi trích xuất càng nhiều id email từ văn bản để giảm thiểu các nỗ lực thủ công của tôi.
Chúng ta cần làm theo các bước sau:
Nhấp vào tab Nhà phát triển Từ nhóm Mã, chọn Visual Basic
===
Nhập mã sau vào mô-đun chuẩn:
Hàm ExtractEmailFromText (s As String) As String Dim AtTheRateSignSymbol As Long Dim i As Long
Dim TempStr As String
Const CharList As String = “[A-Za-z0-9 ._-]”
===
AtTheRateSignSymbol = InStr (s, “@”)
Nếu AtTheRateSignSymbol = 0 Thì
ExtractEmailFromText = “”
Khác
TempStr = “”
Đối với i = AtTheRateSignSymbol – 1 đến 1 bước -1
Nếu Mid (s, i, 1) Thích CharList thì
TempStr = Mid (s, i, 1) & TempStr
Khác
Thoát cho
Kết thúc Nếu
Tiếp theo tôi
If TempStr = “” Then Exit Function
TempStr = TempStr & “@”
Đối với i = AtTheRateSignSymbol + 1 Tới Len (s)
Nếu Mid (s, i, 1) Thích CharList thì
TempStr = TempStr & Mid (s, i, 1)
Khác
Thoát cho
Kết thúc Nếu
Tiếp theo tôi
Kết thúc Nếu
Nếu Đúng (TempStr, 1) = “.” Thì TempStr = _
Còn lại (TempStr, Len (TempStr) – 1)
ExtractEmailFromText = TempStr
Chức năng kết thúc
-
Trong ô B2, công thức là
* = ExtractEmailFromText (A2)
Chúng tôi sẽ nhận được kết quả. Tham khảo ảnh chụp nhanh dưới đây:
Đoạn mã trên sẽ trích xuất địa chỉ email đầu tiên trong trường hợp có nhiều hơn 1 id email trong một ô.
Bằng cách này, chúng ta có thể lấy email từ văn bản.