VBA Worksheet_SelectionChange 不起作用

Dan*_*vaw 3 excel vba

我的 VBA 有点生疏,所以我在构建一个应用程序时遇到了麻烦,该应用程序在修改单元格的值时自动更新某些单元格。

我从位于页面上的这个基本子例程开始Worksheet

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = True
If Not Intersect(Target, Target.Worksheet.Range("A1")) Is Nothing Then
    MsgBox "Lorem Ipsum"
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

当单元格 A1 的值被修改时,该子例程应弹出一个消息框Lorem Ipsum 。

然而这不起作用。我一直找不到问题出在哪里;上面的代码不应发生典型问题(位于模块中的子例程EnableEvents) ;False我也尝试过Target.Worksheet.Range("A1")改成Range("A1").

有谁知道问题来自哪里?

小智 5

问题是,当Application.EnableEvents关闭时,工作表事件不会触发,您的代码将没有机会运行。

要重新打开它,请Application.EnableEvents = True在立即窗口中键入,如下所示

在此输入图像描述

现在您的代码应该可以毫无问题地运行。

  • 如果“Application.EnableEvents = False”,则该事件将不会触发,并且代码将永远不会运行。 (3认同)