我打开一个Excel工作簿,其中包含一些VBA代码,其中一个工作表上包含事件代码。我打开了一个根本没有VBA代码的第二个工作簿,但是一旦第二个工作簿打开,它就会触发VBA代码在第一个工作簿中运行。该代码失败,因为第一个工作簿不是活动工作簿。有人知道为什么打开第二个工作簿应该触发第一个工作簿中的事件代码吗?
答案 0 :(得分:3)
我可以复制-好像打开工作簿会触发其他打开的工作簿中的calculate事件。话虽如此,您的事件处理代码在运行时不应依赖于任何特定的工作簿,因此,如果您需要有关修复的建议,则有助于发布。
例如,可以通过Me
引用与工作表模块相对应的工作表对象,而包含该工作表的工作簿为Me.Parent
Private Sub Worksheet_Calculate()
Debug.print "calculating " & Me.Name & " in " Me.Parent.Name
End Sub