暂时禁用 VBA 的 worksheet_change()

Ben*_*ndy 0 excel vba

我有一个 VBA 宏,需要运行它来初始化原始数据的每月数据转储。这很好用。

此外,我还有一个Private Sub Worksheet_Change()在每次单元格值更改时运行的步骤。这很好用。

我的问题是,当我的初始化宏进行许多更改时,它会不断触发Private Sub Worksheet_Change(). 有没有办法可以在初始化完成运行之前将其禁用?

use*_*756 6

您必须暂时禁用 eventi

Application.EnableEvents = False

然后True通过初始化宏结束将其设置回

为了确保您确实将其设置回来,您最好在初始化宏本身内部进行此设置并使用错误处理程序,如下所示:

Sub InitializingMacro ()

    On Error GoTo ErrHandler
    Application.EnableEvents = False

    'Your code here...

ErrHandler:
   Application.EnableEvents = True

End Sub
Run Code Online (Sandbox Code Playgroud)