对VBA中的工作表更改进行递归调用

时间:2011-08-02 12:12:53

标签: excel vba excel-vba

我创建了具有多个工作表的工作簿,我正在尝试在Sheet1上使用WorkSheet_Change,即sheet1上的某些更改被复制到sheet2。同样,如果有任何更改为Sheet2,我也希望对Sheet1进行类似的更改。

这样做会在两张表上都有递归调用,请告诉我如何避免这种情况。

2 个答案:

答案 0 :(得分:6)

调用宏时禁用事件

Sub Donot_Fire_Events()
    Application.EnableEvents = False
    ' Coding to skip these events
    Application.EnableEvents = True
End Sub

答案 1 :(得分:1)

在模块中放置一个新的全局变量,并将其称为bAutoUpdating As Boolean

当_Change代码运行时,应将其设置为true。如果这是true,任何更改例程都应该。在每个_Change例程结束时,设置回bAutoUpdating = false