小编The*_*ose的帖子

在VBA中返回正则表达式匹配(excel)

我正在尝试为excel 2010编写一个函数,它将获取非结构化文本的单元格,查找称为sdi值的内容,如果找到,则返回该数字.sdi值将显示为sdi ####.我想要的是返回sdi及其后面的特定数字,因此如果单元格包含"some text sdi 1234 some some text",则该函数将返回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
Run Code Online (Sandbox Code Playgroud)

如果没有sdi号,它永远不会进入if语句并尽职尽责地返回空字符串.如果有一个sdi号码,我会得到#VALUE!

我错过了什么?

是的,VBScript已启用.另外,我发现在VBA中使用正则表达式很难受,并且很难在线查找有用的信息.很高兴能够获得良好在线资源的链接.

谢谢

regex excel vba

45
推荐指数
1
解决办法
11万
查看次数

标签 统计

excel ×1

regex ×1

vba ×1