excel-vba - una - macro para obtener ruta de un archivo
Luchando para abrir los archivos.xls más recientes en la carpeta especificada. Error de archivo no encontrado (1)
Esta es mi primera publicación, así que me disculpo si no puedo brindar suficiente información. Lo haré lo mejor que pueda.
Estoy intentando escanear a través de una carpeta específica y abrir el último archivo titulado Excel. Los archivos se llaman ''9 1 13'' y ''9 2 13'' ect. Mi subdirectorio se dirige correctamente a la carpeta correcta e identifica el archivo más reciente. Sin embargo, cuando intento abrirlo, obtengo un error de tiempo de ejecución 1004.
Archivo ''9 2 13.xlsx'' no se pudo encontrar, revise la ortografía ...
Claramente ha encontrado el archivo correcto y la ruta hacia él, entonces ¿por qué VBA no puede abrirlo? Mi sub actual está abajo. Antes de que alguien pregunte, la ruta del archivo ''//Hsrkdfs/hsdata/rk/grp06....''
se debe a que estoy sacando de una red donde el acceso de red de todos no se correlaciona de la misma manera. Algunos acceden a esta carpeta desde la unidad G: otros, la R :, y esta macro debe ser funcional desde todas las computadoras. El error ocurre en la línea ''Workbooks.Open strFilename
.
Sub GetMostRecentFile()
Dim FileSys As FileSystemObject
Dim objFile As File
Dim myFolder
Dim strFilename As String
Dim dteFile As Date
''set path for files - CHANGE FOR YOUR APPROPRIATE FOLDER
Const myDir As String = "//Hsrkdfs/hsdata/rk/grp06/Rockford Repair Station Quality/DELIVERY/Daily Status report - commercial"
''set up filesys objects
Set FileSys = New FileSystemObject
Set myFolder = FileSys.GetFolder(myDir)
''loop through each file and get date last modified. If largest date then store Filename
dteFile = DateSerial(1900, 1, 1)
For Each objFile In myFolder.Files
If objFile.DateLastModified > dteFile Then
dteFile = objFile.DateLastModified
strFilename = objFile.Name
End If
Next objFile
Workbooks.Open strFilename
Set FileSys = Nothing
Set myFolder = Nothing
End Sub
Intente usar .Path
que devuelve la ruta completa, en lugar de .Name
, que solo devuelve el nombre y la extensión del archivo.
strFilename = objFile.Path