VBA Worksheet_SelectionChange不起作用

时间:2016-08-02 13:18:07

标签: vba excel-vba excel

我的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

当修改单元格A1的值时,此子例程应弹出消息框 Lorem Ipsum

然而这不起作用。我一直无法找到问题所在;上面的代码不应该出现典型的问题(位于模块中的子程序,EnableEvents转为False);我还尝试将Target.Worksheet.Range("A1")更改为Range("A1")

有谁知道这个问题来自哪里?

2 个答案:

答案 0 :(得分:4)

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

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

enter image description here

现在你的代码应该没有任何问题。

答案 1 :(得分:-1)

我复制了你的代码,它按照人们的预期运作。请注意,您需要手动编辑代码的工作表上的单元格A1以启动MsgBox。 Recalculation has no bite on the worksheet change event.