【发布时间】:2012-08-29 13:15:10
【问题描述】:
我有一个名为“日期”的工作表(对象名称是 A_Dates),需要在它被激活时进行计算(值得注意的是,这在我的个人宏工作簿中)。我经常打开工作簿,其中有太多的计算让我无法进行自动计算。所以我将自动计算设置为手动,工作表中的代码如下:
Private Sub Worksheet_Activate()
A_Dates.Calculate
End Sub
在过去的 3 个月里,这一直运行良好,日复一日。昨天,它停止工作。它现在在声明行抛出这个错误:
Microsoft Visual Basic
Automation error
Unspecified error
[OK] [Help]
我尝试更改引用工作表的方式,使用:
Sheets("Dates").Calculate
和
ActiveSheet.Calculate
无济于事。我还包括错误处理:
On Error Resume Next
这并不能阻止它。我什至做到了:
Private Sub Worksheet_Activate()
On Error GoTo headache
Sheets("Dates").Calculate
Exit Sub
headache:
Exit Sub
End Sub
它仍然显示。我完全不知所措。帮忙?
附加信息
我有以下参考资料,并在本工作簿的各种宏中使用所有这些参考资料:
Visual Basic 应用程序
- Microsoft Excel 12.0 对象库
- OLE 自动化
- Microsoft Office 12.0 对象库
- Microsoft 脚本运行时
- Microsoft Forms 2.0 对象运行时
- Microsoft HTML 对象库
- Microsoft Internet 控件
- Microsoft ActiveX 数据对象 2.8 库
- Microsoft ActiveX 数据对象 Recordset 2.8 库
【问题讨论】:
-
如果您注释掉该行并手动强制重新计算(使用 [F9]),您会收到错误吗?
-
不,我没有。而且,一切似乎计算正确。
-
可能错误与运行任何 VBA 有关,不一定是
Calculate方法。如果您尝试用Debug.Print A_Dates.Name替换A_Dates.Calculate会怎样?这会产生错误吗? -
是的,它确实会产生同样的错误。 叹息我不喜欢这里的发展方向......
-
下一步是确保您没有遗漏任何参考资料。在 VBA IDE 中,工具 --> 参考...
标签: vba error-handling excel-2007