工作簿名称中需要什么扩展名?

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

我以前从来没有遇到过这个问题,但是在复制整个目录来完成副本上的一些开发工作(将原始原始文件保存在不同的位置)之后,引用时出现“下标超出范围”的问题工作簿。

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

现在引发错误的代码(从来没有用过):

ScheduleLocation = Workbooks("Master Schedule").Path 

但是,这行现在会引发错误。 如果我用“Master Schedule.xlsm”取代“Master Schedule”,一切都可以正常工作。 我之前有过这个问题,但是我从来没有能够指出问题的根源。

不会抛出错误的代码:

 ScheduleLocation = Workbooks("Master Schedule.xlsm").Path 

因此我的问题是:这是为什么? 为什么名字(没有扩展名)有时是不够的,有时候不是?

你有没有在Windows资源pipe理器中打开“显示已知文件types的文件扩展名”? 尝试使用隐藏的和可见的扩展来运行代码。

将工作簿分配给打开的variables是个好习惯。

 Dim wbInput as Workbook Set wbInput = Workbooks.open ("C:\Master Schedule.xslx") 

现在,您可以在不考虑扩展的系统设置的情况下处理variables。