何时需要工作簿名称中的扩展名?

Aus*_*mer 5 excel vba

我有一个 excel 文件目录,这些文件通过主文件中的 VBA 代码相互交互。

我以前从来没有遇到过这个问题,但是在复制整个目录以对副本进行一些开发工作(在不同的位置保持原件完好无损)之后,我在引用时遇到了“下标超出范围”的问题工作簿。

例如,之前使用这行代码一切正常(实际代码中没有任何更改):

现在抛出错误的代码(从未使用过):

ScheduleLocation = Workbooks("Master Schedule").Path
Run Code Online (Sandbox Code Playgroud)

但是,此行现在会引发错误。如果我用“Master Schedule.xlsm”替换“Master Schedule”,一切都会恢复正常。我以前遇到过这个问题,但我一直无法找出问题的根本原因。

不会抛出错误的代码:

ScheduleLocation = Workbooks("Master Schedule.xlsm").Path
Run Code Online (Sandbox Code Playgroud)

因此我的问题是:这是为什么?为什么名称(不带扩展名)有时不够用,有时又不合适?

小智 1

您是否在 Windows 资源管理器中打开了“显示已知文件类型的文件扩展名”?尝试运行带有隐藏和可见扩展的代码。

最好在打开时将工作簿分配给变量。

Dim wbInput as Workbook
Set wbInput = Workbooks.open ("C:\Master Schedule.xslx")
Run Code Online (Sandbox Code Playgroud)

现在您可以处理变量而无需关心扩展的系统设置。