我想爲excel 2010編寫一個函數,它將採用非結構化文本的單元格,查找稱爲sdi值的東西,如果找到,則返回該編號。 sdi值將顯示爲sdi ####。我要的是回到SDI和它後面的數字sepecific,因此,如果單元格中包含「一些文本SDI 1234一些文字」功能將返回SDI 1234在VBA中返回一個正則表達式匹配(excel)
這是我的函數:
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
如果沒有sdi號碼,它永遠不會輸入if語句並忠實地返回空字符串。如果有sdi號碼,我會獲得#VALUE!
我錯過了什麼?
是的,VBScript已啓用。另外,我發現在VBA中使用正則表達式令人沮喪,並且很難在網上找到有用的信息。鏈接到良好的在線資源將不勝感激。
謝謝
很好的答案,謝謝你的功能! –
謝謝Issun - 你的功能奇妙地工作 – TheoRose
+1很好做Issun – brettdj