Pregunta

Estoy tratando de hacerlo en un directorio determinado para encontrar el último archivo CSV descargado.Por alguna razón, mi función DIR no encontrará ningún archivo, incluso si el archivo existe.No estoy totalmente familiarizado con VBA, por lo que quizás esté perdiendo algún tipo de referencia para realizar la función DIR, pero no puedo encontrar nada en línea que me indique que necesito.Todos los ejemplos y foros usan dir, como yo, pero no puedo conseguir el mío para trabajar.Aquí está el código, por favor dígame si puede ver lo que estoy haciendo 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

El archivo Test.txt está en mi archivo de descargas y la cadena de FilePath se imprime para ser la ruta correcta, pero sigo obteniendo un error que indica que no puede encontrar el archivo.Falla en el primer uso de dir (pathtofile).Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Dir() Solo devuelve la parte del nombre de archivo de la ruta, es decir, no devuelve la parte de la carpeta.Por ejemplo,

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

devuelve MyFile.txt no C:\MyPath\MyFile.txt

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top