这是我的第一篇文章,所以如果我没有提供足够的信息,我会道歉。我会尽我所能。
我正在尝试浏览特定文件夹并打开最近的标题 Excel文件。这些文件名为'9 1 13'和'9 2 13'等。我的sub正确地将自己引导到正确的文件夹并标识最新的文件。但是,当我尝试打开它时,我得到运行时错误1004。
无法找到文件'9 2 13.xlsx',请检查拼写....
它显然找到了正确的文件和路径,为什么VBA无法打开它呢?我目前的潜艇在下面。在有人要求之前,文件路径'\\Hsrkdfs\hsdata\rk\grp06....'
是因为我从一个网络中拉出来,每个人的网络访问都没有映射到同一个网络。有些人从G:驱动器访问此文件夹,其他人从R:,并且此宏必须在所有计算机上运行。错误发生在'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
答案 0 :(得分:1)
尝试使用返回完整路径的.Path
,而不是.Name
,它只返回文件的名称和扩展名。
strFilename = objFile.Path