使用工作簿打开一个已知的文件位置产生“无法find运行时错误1004 <文件>

我正在构build一个实用程序来从特定文件中获取数据并将该数据传输到另一个文件。 源文件都具有相同的命名约定,其中包含一个相同的string,可用于区分目录中的其他文件。 意图是使用通配符的string打开文件并提取所需的数据。

我以为我有Workbook.Open昨天工作,后查阅这个StackOverflow后 , 这个项目在Office开发中心 ,但今天我尝试运行我的testing代码和VBA声称不find该文件(尽pipe文本build议,否则)。

我的testing代码中没有太多错误:

 Dim strFilePath As String strFilePath = "C:\...\KMMacros\DeepLinkTransferFromSabaForm\" Dim strFileName As String strFileName = "*SabaEntryForm.xlsx" Workbooks.Open FileName:=Dir$(strFilePath & strFileName), ReadOnly:=True 

错误读取

找不到“TEST_KM6.7-3_BRSTA_SabaEntryForm.xlsx”。 检查文件名称的拼写,并validation文件位置是否正确。

并debugging亮点

 Workbooks.Open FileName:=Dir$(strFilePath & strFileName), ReadOnly:=True 

由于该错误明确提到了我期望打开的文件,并且由于我的代码没有提供特定的文件名,所以似乎VBA已经find该文件,即使错误状态不是这样。

VBA如何find文件的名称,然后声称找不到它? 我究竟做错了什么?

Dir()只返回文件名 ,而不是整个path,所以如果你的当前目录不同于你传递给Dir的文件夹,那么你将会遇到这个问题。

 Dim strFilePath As String strFilePath = "C:\...\KMMacros\DeepLinkTransferFromSabaForm\" Dim strFileName As String strFileName = "*SabaEntryForm.xlsx" Workbooks.Open FileName:=strFilePath & Dir$(strFilePath & strFileName), _ ReadOnly:=True