为什么我的正则表达式在 Excel 中的 VBA 脚本中调用错误“5018”

为什么我的正则表达式在 Excel 中的 VBA 脚本中调用错误“5018”

我刚刚为 Excel 编写了我的第一个 VBA 脚本,因为我必须将文件夹中的许多“*.txt”文件写入 excel 电子表格。但是当我运行此脚本时,我收到错误“5018”。它由以下行调用

If reg.Test(file.Name) Then

知道我做错了什么吗?以下是完整的脚本:

Sub get_filenames()
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Files = fso.GetFolder("C:\myfolder").Files
    Set reg = CreateObject("vbscript.regexp")

    reg.IgnoreCase = True
    reg.MultiLine = False
    reg.Pattern = "*.txt"

    For Each file In Files
        If reg.Test(file.Name) Then
            i = i + 1
            Cells(i, 1) = file.Name
        End If        
    Next
End Sub

答案1

刚刚修复了它。显然我的正则表达式是错误的。5018 代表“正则表达式中的意外量词”。所以我把它改成了

reg.Pattern = "^.+\.txt$"

相关内容