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$"
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
Tags regex microsoft-excel vba