尝试定义 VBA 正则表达式 REPLACE 方法时出现意外错误消息

尝试定义 VBA 正则表达式 REPLACE 方法时出现意外错误消息

这是我的代码:


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)

相关内容