Tôi đang cố gắng viết hàm cho excel 2010 sẽ lấy một ô văn bản không có cấu trúc, tìm kiếm một giá trị sdi và nếu tìm thấy, trả về số đó. Giá trị sdi sẽ xuất hiện dưới dạng sdi ####. Những gì tôi muốn là để trở về SDI và những con số sepecific mà theo nó, vì vậy nếu các tế bào có chứa "một số văn bản SDI 1234 một số văn bản hơn" hàm sẽ trả về SDI 1234.Trả lại kết quả regex trong VBA (excel)
Đây là chức năng của tôi:
Function SdiTest(LookIn As String) As String
Dim temp As String
Dim STA As Object
temp = ""
Set SDI = CreateObject("VBScript.RegExp")
SDI.IgnoreCase = True
SDI.Pattern = "sdi [1-9]*"
SDI.Global = True
If SDI.Test(LookIn) Then
temp = SDI.Execute(LookIn)
End If
SdiTest = temp
End Function
Nếu không có số sdi, nó sẽ không bao giờ đi vào câu lệnh if và trả về chuỗi rỗng. Nếu có số sdi tôi nhận đượC#VALUE!
Tôi đang thiếu gì?
Có, VBScript được bật. Ngoài ra, tôi thấy nó bực bội khi sử dụng regex trong VBA, và khó tìm thấy thông tin hữu ích trực tuyến. Liên kết đến các tài nguyên trực tuyến tốt sẽ được đánh giá cao.
Cảm ơn bạn
Câu trả lời hay, cảm ơn chức năng! –
Cảm ơn bạn Issun - chức năng của bạn hoạt động tuyệt vời – TheoRose
+1 độc đáo thực hiện Issun – brettdj