我有一个 Excel 文件目录,这些文件通过主文件中的 VBA 代码相互交互。
我以前从未遇到过这个问题,但是在复制整个目录以在副本上进行一些开发工作(在不同位置保持原始文件完整)后,我遇到了“下标超出范围”的问题引用工作簿时出现问题。
例如,之前这行代码一切运行良好(实际代码中没有任何更改):
现在抛出错误的代码(从未使用过):
ScheduleLocation = Workbooks("Master Schedule").Path
但是,此行现在会引发错误。如果我用“Master Schedule.xlsm”替换“Master Schedule”,一切都会恢复正常。我以前也遇到过这个问题,但我一直无法找出问题的根本原因。
不抛出错误的代码:
ScheduleLocation = Workbooks("Master Schedule.xlsm").Path
因此我的问题是:这是为什么?为什么名称(不带扩展名)有时不够,有时又不够?
最佳答案
您是否在 Windows 资源管理器中打开了“显示已知文件类型的文件扩展名”? 尝试使用隐藏和可见扩展运行代码。
最好在打开时将工作簿分配给变量。
Dim wbInput as Workbook
Set wbInput = Workbooks.open ("C:\Master Schedule.xslx")
现在您可以处理变量,而无需关心扩展的系统设置。
关于vba - 工作簿名称何时需要扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468501/