Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 打开第二个工作簿会触发第一个工作簿中的VBA代码_Excel_Vba - Fatal编程技术网

Excel 打开第二个工作簿会触发第一个工作簿中的VBA代码

Excel 打开第二个工作簿会触发第一个工作簿中的VBA代码,excel,vba,Excel,Vba,我打开一个Excel工作簿,其中包含一些VBA代码,包括其中一个工作表上的事件代码。我打开了第二个工作簿,其中根本没有VBA代码,但一旦第二个工作簿打开,它就会触发VBA代码在第一个工作簿中运行。代码失败,因为第一个工作簿不是活动工作簿。有人知道为什么打开第二个工作簿会触发第一个工作簿中的事件代码吗?我可以复制这一点-似乎打开工作簿会触发其他打开工作簿中的计算事件。话虽如此,您的事件处理代码在运行时不应依赖于任何特定工作簿处于活动状态,因此,如果您需要修复建议,发布该工作簿将有所帮助 例如,与工

我打开一个Excel工作簿,其中包含一些VBA代码,包括其中一个工作表上的事件代码。我打开了第二个工作簿,其中根本没有VBA代码,但一旦第二个工作簿打开,它就会触发VBA代码在第一个工作簿中运行。代码失败,因为第一个工作簿不是活动工作簿。有人知道为什么打开第二个工作簿会触发第一个工作簿中的事件代码吗?

我可以复制这一点-似乎打开工作簿会触发其他打开工作簿中的计算事件。话虽如此,您的事件处理代码在运行时不应依赖于任何特定工作簿处于活动状态,因此,如果您需要修复建议,发布该工作簿将有所帮助

例如,与工作表模块相对应的工作表对象可以通过
Me
引用,包含该工作表的工作簿是
Me.Parent

Private Sub Worksheet_Calculate()

    Debug.print "calculating " & Me.Name & " in " Me.Parent.Name

End Sub

为了澄清,触发的VBA代码是第一个工作簿上的专用子工作表_Calculate()代码。感谢您的确认。我对VBA相当陌生,我对代码被触发感到有点惊讶。现在我知道了,我会小心的。我可以很容易地修复代码以停止当前的故障。这很简单。谢谢你给我的指针关键字。我没有意识到这一点,我可以看出它是多么有用。