首页 > 解决方案 > 为什么 Worksheet_Change 仅在开发人员模式下触发?

问题描述

我有奇怪的错误,我似乎无法解决它,我有以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "change"
End Sub

每次更改单元格时,这都会在我的工作表上触发,但是在我单击返回开发人员模式之前不会出现 msgbox,然后它会触发。仅当我单击开发人员模式时,它才会触发我在工作表上进行更改的 x 次。

我在一张新纸上试了一下,效果很好。有什么东西会阻止细胞功能的改变正常工作吗?我不明白为什么在我进入开发人员页面之前它不会运行。据我了解,Appliation.EnableEvents 设置为 True。

澄清一下:此功能仅在我单击开发人员模式时运行。感觉就像它排队,然后在我进入开发者模式后触发。

标签: excelvba

解决方案


右键单击您的工作表并粘贴以下代码示例。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("A1:C10")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

' Display a message when one of the designated cells has been
        ' changed.
        ' Place your code here.
        MsgBox "Cell " & Target.Address & " has changed."

End If
End Sub

请记住,这是工作表代码,而不是模块代码。


推荐阅读