【问题标题】:Difference between Excel.ThisWorkbook and just ThisWorkbook?Excel.ThisWorkbook 和只是 ThisWorkbook 之间的区别?
【发布时间】:2017-01-25 21:31:36
【问题描述】:

我有一些 VBA 代码可以在我的办公桌上的 Excel 中运行良好,但在家里它却是崩溃的。原来我所要做的就是改变

Set shtObj = ThisWorkbook.Sheets(1)

Set shtObj = Excel.ThisWorkbook.Sheets(1)

有人知道为什么吗?我们的组织刚刚迁移到 SharePoint 平台,我怀疑这会导致各种巫术蔓延,但我只是猜测。

【问题讨论】:

  • 迁移到 SharePoint 是否还伴随着迁移到 Office 365?
  • 你是如何确定符合条件的 ThisWorkbook 会解决这个问题的?
  • 谢谢大家 - 是的,迁移到 SharePoint(实际上是 OneDrive)是通过迁移到 Office 365 完成的。我已经尝试过使用我们网络驱动器上的电子表格版本(不是SharePoint)并将其与在 SharePoint 上的一个进行比较。 SharePoint 代码给出了错误(当“Excel.”被删除时),但来自网络驱动器的文件没有给出错误。它可能与位置无关,但 SharePoint 似乎是罪魁祸首。
  • 最佳猜测和放弃:这似乎是特定于我的用户/个人资料。大楼里的其他人正在使用该文件,没有任何问题。

标签: excel vba object qualifiers


【解决方案1】:

如果你把它改回ThisWorkbook,它会起作用吗?

我怀疑它会,原因可能是因为 VBA 重新编译了自己(并且第一次没有正确编译 - 因此容易崩溃)。

当文件中嵌入的版本详细信息与正在使用的 Office/VBA 版本不同,或者从 32 位更改为 64 位 Office 时,会发生重新编译。编辑该行足以重新编译该行,因此在ThisWorkbook 之前添加Excel. 足以使其重新编译。在 ThisWorkbook 之前删除 Excel. 应该会强制它重新编译。

唯一的另一件事可能是如果有一个名为ThisWorkbook 的变量,但我希望你得到错误91,“对象变量或未设置块变量”或其他一些错误,但不是崩溃。

【讨论】:

  • 谢谢。我尝试删除 Excel。并再次遇到相同的错误(“自动化错误 - 灾难性故障”-2147418113,fwiw)。我现在也在工作中遇到问题,所以位置似乎没有进入它。
  • 更新:我刚刚发现当我将包含代码的工作簿移动到我们的本地网络驱动器(不是 SharePoint)时,问题完全消失了,因此罪魁祸首似乎是某种形式的 SharePoint。
【解决方案2】:

ThisWorkbook 是一个全局范围的 Workbook 对象,您可以使用它来引用包含您正在查看的 VBA 代码的工作簿实例。

所以理论上,不合格的ThisWorkbook完全Excel.ThisWorkbookApplication.ThisWorkbook是同一个对象。

证明:

Sub Test()
    Debug.Print ObjPtr(ThisWorkbook), _
                ObjPtr(Excel.ThisWorkbook), _
                ObjPtr(Application.ThisWorkbook)
End Sub

输出相同指针地址的 3 倍。

Excel.ThisWorkbook 是隐藏的 Excel._Global 模块的成员 (Property Get),Application.ThisWorkbookExcel.Application 类的成员 (Property Get)。

不确定您的文件有什么问题,但两者之间没有假定任何区别。

【讨论】:

  • 非常感谢。我尝试了您的测试(在中断模式下发生错误后的即时窗口中)。 “ThisWorkbook”产生与之前相同的错误(自动化错误 - 灾难性故障“-2147418113,fwiw)。另外两个 - 以“Excel”或“应用程序”开头。工作正常。
【解决方案3】:

这似乎是我的特定用户/个人资料中的错误。其他人现在正在使用代码/工作簿,没有报告任何问题。耶!!?

【讨论】:

    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    相关资源
    最近更新 更多