我有一些 VBA 代码在办公 table 上的 Excel 中运行良好,但在家里却崩溃了。事实证明我所要做的就是改变
Set shtObj = ThisWorkbook.Sheets(1)
至
Set shtObj = Excel.ThisWorkbook.Sheets(1)
有人知道为什么吗?我们的组织刚刚迁移到 SharePoint 平台,我怀疑这会导致各种巫术蔓延,但我只是猜测。
最佳答案
如果将其改回为 ThisWorkbook
是否有效?
我怀疑它会,原因是 VBA 重新编译了自己(并且第一次没有正确编译 - 因此容易崩溃)。
当文件中嵌入的版本详细信息与正在使用的 Office/VBA 版本不同,或者从 32 位 Office 更改为 64 位 Office 时,会发生重新编译。编辑该行足以重新编译该行,因此在 ThisWorkbook
之前添加 Excel.
足以使其重新编译。在 ThisWorkbook
之前删除 Excel.
应该会强制它再次重新编译。
唯一可能的情况是,如果有一个名为 ThisWorkbook
的变量,但我希望您会收到错误 91、“未设置对象变量或 With block 变量”或其他错误其他错误,但不是崩溃。
关于excel - Excel.ThisWorkbook 和 ThisWorkbook 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862027/