Pergunta

Estou tentando percorrer um determinado diretório para encontrar o arquivo CSV baixado mais recente.Por alguma razão, minha função Dir não encontrará nenhum arquivo, mesmo que o arquivo exista.Não estou totalmente familiarizado com o VBA, então talvez esteja faltando algum tipo de referência para executar a função Dir, mas não consigo encontrar nada on-line que me diga que preciso.Todos os exemplos e fóruns usam Dir assim como eu, mas não consigo fazer o meu funcionar.Aqui está o código, diga-me se você consegue ver o que estou fazendo de errado:

Public Function Get_File() as string
   Dim filePath As String

   ChDir ("..")
   filePath = CurDir
   'Goes back to Documents directory to be in same directory as macro
   ChDir (filePath & "\Documents")
   filePath = filePath & "\Downloads\test.txt" 
   filePath = getLatestFile(filePath)

   Get_File = filePath
End Function

Public Function getLatestFile(pathToFile As String) As String
   Dim StrFile As String
   Dim lastMod As Variant
   Dim nextMod As Variant
   Dim lastFileName As String

   StrFile = Dir(pathToFile)
   lastFileName = StrFile
   lastMod = FileDateTime(StrFile)
   While Len(StrFile) > 0
       Debug.Print StrFile
       StrFile = Dir
       nextMod = FileDateTime(StrFile)
       If nextMod > lastMod Then
           lastFileName = StrFile
           lastMod = nextMod
       End If
   Wend

   getLatestFile = lastFileName
End Function

O arquivo test.txt está em meu arquivo de downloads e a string filePath é impressa como o caminho correto, mas continuo recebendo um erro informando que não é possível encontrar o arquivo.Falha no primeiro uso de Dir(pathToFile).Qualquer ajuda seria muito apreciada.

Foi útil?

Solução

Dir() retorna apenas a parte do nome do arquivo do caminho, ou seja, não retorna a parte da pasta.Por exemplo,

Dir("C:\MyPath\MyFile.txt")

retorna MyFile.txt não C:\MyPath\MyFile.txt

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top