Question

Je suis en train de faire une boucle par un répertoire donné pour trouver la dernière version du fichier csv téléchargé.Pour une raison quelconque, mon Dir fonction ne trouverez pas de fichier même si le fichier n'existe pas.Je ne suis pas du tout familiers avec VBA donc j'ai peut-être raté quelques sorte de référence pour effectuer la fonction Dir, mais je ne peux pas trouver quelque chose en ligne qui me dit que j'en ai besoin.Tous les exemples et les forums utilisent Dir juste comme je le fais, mais je ne peux le faire mine de travailler.Voici le code, veuillez me dire si vous pouvez voir ce que je fais de mal:

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

L'test.txt le fichier est dans mes Téléchargements de fichier et le chemin d'accès du fichier string imprime à être le chemin d'accès correct, mais je reçois un message d'erreur indiquant qu'il ne peut pas trouver le fichier.Il échoue lors de la première utilisation de la fonction Dir(chemin_fichier).Toute aide serait grandement appréciée.

Était-ce utile?

La solution

Dir() seulement renvoie le nom de fichier partie du chemin d'accès, c'est à dire, il ne retourne pas le dossier de la partie.Par exemple,

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

retourne MyFile.txt pas C:\MyPath\MyFile.txt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top