我正在尝试扫描特定文件夹并打开最近命名的 Excel 文件。这些文件被命名为“10 1 13”和“10 2 13”等。我的 sub 正确识别了最新的文件。但是,当它尝试打开它时,我收到以下错误:
'Filename' is currently in use. Try again later.
该文件通常会被某人使用,但每天只修改一次。我需要做的就是打开一个只读工作簿并从中复制数据。不需要修改或保存,这就是我尝试“ReadOnly:= True”论证的原因,但我仍然收到一条错误消息。
文件路径 '\Hsrkdfs\hsdata\rk\grp06....' 是因为我从每个人的网络访问映射不同的网络中提取。有些人从 G: 驱动器访问此文件夹,其他人从 R: 访问此文件夹,并且此宏必须在所有计算机上都可以使用。调试将我指向 'Workbooks.Open Filename:=strFilename, ReadOnly:=True' 行。
有没有更强大的方法来打开工作簿?无论使用如何强制打开它的另一种方法?还是一种完全避免冲突的方法?谢谢你。
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.Path
End If
Next objFile
Workbooks.Open Filename:=strFilename, ReadOnly:=True
Set FileSys = Nothing
Set myFolder = Nothing
End Sub