Preciso abrir o arquivo txt mais recente de um diretorio... nao consegui entender porque o codigo abaixo da sempre erro.
Sub arquivo()
foldername = "G:\Meu Drive\Fechamento" & Application.PathSeparator
fname = Dir(foldername & "*txt")
foldername = foldername & fname
'fname = Dir(FolderName & "*xlsm")
wookbooks.Open foldername
End Sub
O código apresentado pode apresentar erros por alguns motivos:
1. Erro de sintaxe:
wookbooks.Open foldername
está usando a palavra-chave "wookbooks" incorretamente. A palavra-chave correta é "Workbooks".2. Arquivo não encontrado:
Dir
procura apenas o primeiro arquivo que corresponde ao padrão especificado. Se não houver nenhum arquivo TXT no diretório, fname
será uma string vazia e o código falhará ao abrir o arquivo.3. Permissões de arquivo:
Solução:
1. Corrigir a sintaxe:
Altere a linha wookbooks.Open foldername
para:
Workbooks.Open foldername
2. Verificar se o arquivo existe:
Use um loop para iterar por todos os arquivos TXT no diretório e abrir o mais recente:
Sub AbrirArquivoTxtMaisRecente()
Dim foldername As String
Dim fname As String
Dim f As File
foldername = "G:\Meu Drive\Fechamento" & Application.PathSeparator
Set f = Dir(foldername & "*.txt")
Do While f <> ""
If f > fname Then
fname = f
End If
Set f = Dir
Loop
If fname <> "" Then
Workbooks.Open foldername & fname
Else
MsgBox "Nenhum arquivo TXT encontrado no diretório."
End If
End Sub
3. Verificar as permissões de arquivo:
Observações:
Dir
para iterar por todos os arquivos TXT no diretório.fname
armazena o nome do arquivo TXT mais recente.Workbooks.Open
abre o arquivo TXT mais recente.
Espero que isso ajude!