【发布时间】:2021-10-23 07:15:48
【问题描述】:
我正在尝试为 excel 2010 编写一个函数,该函数将获取一个非结构化文本单元格,查找称为 sdi 值的内容,如果找到,则返回该数字。 sdi 值将显示为 sdi ####。我想要的是返回 sdi 和它后面的具体数字,所以如果单元格包含“一些文本 sdi 1234 一些更多的文本”,该函数将返回 sdi 1234。
这是我的功能:
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 中使用正则表达式令人沮丧,并且很难在网上找到有用的信息。我们将不胜感激提供优质在线资源的链接。
谢谢
【问题讨论】: