RegEx Extraction #NAME error



我正试图在这个链接的第二步中创建我自己的VBA函数。如何在单元格和循环中使用Microsoft Excel中的正则表达式(Regex)

但是,我得到了一个#NAME错误。我哪里错了?我已经在上测试了我的RegExhttps://regex101.com.

Function extractGroupName(Myrange As Range) As String
    Dim regEx As New RegExp
    Dim strPattern As String
    Dim strInput As String
    Dim strReplace As String
    Dim strOutput As String
    strPattern = "^.*Name:(.*);Id"
    If strPattern <> "" Then
        strInput = Myrange.Value
        strReplace = "$1"
        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = strPattern
        End With
        If regEx.Test(strInput) Then
            extractGroupName = regEx.Replace(strInput, "$1")
        Else
            extractGroupName = "ERROR: NOT FOUND"
        End If
    End If
End Function

您似乎已经对模块和函数进行了相同的命名。当这种情况发生时,Excel不知道你的意思,所以返回#NAME错误。有两个修复:

  1. 更改其中一个或另一个的名称。我会经常用mod作为所有常规模块名称的前缀,以避免这个问题:modextractGroupName

  2. 使用完全限定的名称调用函数:


=extractGroupName.extractGroupName(A1)

看起来您缺少对Reg表达式库的引用。我认为这是"引用"对话框中的Microsoft VBScript正则表达式(工具:VBIDE中的引用)。。。

相关内容

  • 没有找到相关文章

最新更新