我正在尝试使用VBA在特定目录中打开.xls文件,但由于VBA运行时错误而无法执行此操作。我需要在路径中使用通配符,因为文件名按月略有变化,但始终以" CB947开头。"我需要将CB947工作簿中的数据复制到我的主工作簿中。这就是我到目前为止所拥有的:
Dim dpath, sFound As String
dpath = "C:\Users\gbrown\OneDrive - My Company\REVPRO\Input Data\2018\January\"
Set Master = ThisWorkbook
sFound = Dir(dpath & "\CB947*.xls")
Debug.Print dpath & sFound
If (sFound <> "") Then
Workbooks.Open dpath & sFound
End If
当我到达上面的Debug.print
命令时,立即窗口打印出正确的路径和文件名,因此我知道脚本正在找到正确的文件。它只是无法打开它。当我尝试运行上面的代码时,我收到以下错误:
我的DIR sytax不正确还是我遗漏了其他东西?
编辑:这是我的Debug.Print
命令在立即窗口中显示的内容:
C:\Users\gbrown\OneDrive - My Company\REVPRO\Input Data\2018\
January\CB947 (4).xls
答案 0 :(得分:0)
这是为我工作的:
Dim dpath As String
Dim sFound As String
dpath = "C:\Users\gbrown\OneDrive - My Company\REVPRO\Input Data\2018\January\"
sFound = Dir(dpath & "CB947*.xls", vbNormal)
Debug.Print dpath & sFound
If (sFound <> "") Then
Workbooks.Open dpath & sFound
End If
注意:如果这对您不起作用,则可能存在权限问题。由于某些文件系统原因,工作簿可能被锁定或无法打开。