La función dir en Excel 2010 VBA no funciona
-
12-12-2019 - |
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.
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