我想为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