Por que minhas expressões regulares invocam o erro '5018' no meu script do VBA no Excel

2

Acabei de escrever meu primeiro script VBA para o Excel porque tenho que escrever muitos arquivos "* .txt" de uma pasta em uma planilha do Excel. Mas quando eu executo este script, recebo o erro '5018'. É invocado pela linha

If reg.Test(file.Name) Then

Alguma ideia do que estou fazendo errado? Aqui está o script completo:

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
    
por Lucas 29.10.2009 / 11:45

1 resposta

2

Apenas consertei. Aparentemente minha expressão regular está errada. 5018 significa "quantificador inesperado na expressão regular". Então eu mudei para

reg.Pattern = "^.+\.txt$"
    
por 29.10.2009 / 11:54