这是我的代码:
Option Explicit
Sub parseInvocationParm(parmInvocationParm)
' https://www.automateexcel.com/vba/regex/
MsgBox "In parseInvocationParm, the value of parmInvocationParm is " & parmInvocationParm
Dim regExObject As New VBScript_RegExp_55.RegExp
regExObject.Pattern = "^.*\/e(.*)"
regExObject.Global = False
Dim Replacement As String
Replacement = "$1"
If regExObject.Test(parmInvocationParm) Then
regExObject.Replace (parmInvocationParm, Replacement)
Else
MsgBox "The regExObject.Test(parmInvocationParm) test failed to match"
End If
End Sub
甚至无需执行此代码,当我将其输入到 VBA 编辑器窗口时,编辑器会突出显示该指令regExObject.Replace(parmInvocationParm,替换)并显示一条消息编译错误:预期=
无论我如何定义替换字符串,我都会得到相同的错误条件,例如,只是一个简单的文本字符串,如我的名字,没有反向引用。我在网上查看了 regExObject.Replace 方法的大量示例,它们似乎都是使用两个字符串作为两个参数的非常简单的示例,据我所知,我的代码与这些示例非常一致,但我一直收到此编译错误。
有人能看出什么问题吗?
提前致以万分感谢。
答案1
从代码的这一部分删除括号:
regExObject.Replace (parmInvocationParm, Replacement)
它应该是:
regExObject.Replace parmInvocationParm, Replacement
如果保留括号,则必须使用调用语句:
Call regExObject.Replace (parmInvocationParm, Replacement)