Funzione dir in Excel 2010 VBA non funziona
-
12-12-2019 - |
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.
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