我的 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在立即窗口中键入,如下所示
现在您的代码应该可以毫无问题地运行。