Domanda

Sto cercando di loop attraverso una determinata directory per trovare l'ultimo file CSV scaricato.Per qualche motivo la mia funzione dir non troverà alcun file anche se il file esiste.Non ho totalmente familiare con VBA, quindi potrei forse mancare una sorta di riferimento per eseguire la funzione dir, ma non riesco a trovare nulla online che mi dice che ho bisogno.Tutti gli esempi e i forum usano dir proprio come lo faccio, ma non riesco a far funzionare il mio.Ecco il codice, per favore dimmi se riesci a vedere cosa sto facendo male:

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
.

Il file Test.txt è nel mio file Downloads e la stringa di filePath viene stampata per essere il percorso corretto, ma continuo a ricevere un errore che indichi che non riesce a trovare il file.Non riesce al primo uso di dir (pathtofile).Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Dir() restituisce solo la parte del nome del file del percorso, I.e., non restituisce la porzione di cartelle.Ad esempio,

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

Restituisce MyFile.txt non C:\MyPath\MyFile.txt

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top