我有一些VBA代码在我的办公桌上在Excel工作正常,但在家里它是崩溃的.事实证明我所要做的就是改变
Set shtObj = ThisWorkbook.Sheets(1)
至
Set shtObj = Excel.ThisWorkbook.Sheets(1)
谁知道为什么?我们的组织刚刚搬到了一个SharePoint平台,我怀疑它正在导致各种各样的伏都教爬行,但我只是在猜测.
如果你改回来它会有用ThisWorkbook
吗?
我怀疑它会,并且原因是因为VBA重新编译自己(并且第一次没有正确编译 - 因此崩溃的倾向).
当文件中嵌入的版本详细信息与正在使用的Office/VBA版本不同,或者从32位更改为64位Office时,会发生重新编译.编辑该行足以重新编译该行,因此Excel.
之前添加ThisWorkbook
足以使其重新编译.Excel.
之前删除ThisWorkbook
应该强制它再次重新编译.
唯一可能的另一件事是如果有一个名为变量ThisWorkbook
,但是我希望你得到错误91,"对象变量或没有设置块变量",或者其他一些错误,但不是崩溃.