Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA工作表\u选择更改不起作用_Vba_Excel - Fatal编程技术网

VBA工作表\u选择更改不起作用

VBA工作表\u选择更改不起作用,vba,excel,Vba,Excel,我的VBA有点生锈,所以我在构建一个应用程序时遇到了问题,该应用程序在修改单元格的值时会自动更新某些单元格 我从位于工作表页面上的这个基本子程序开始: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = True If Not Intersect(Target, Target.Worksheet.Range("A1")) Is Nothing Then MsgBox "Lorem

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

我从位于
工作表
页面上的这个基本子程序开始:

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”)


有人知道这个问题是从哪里来的吗

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

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


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

我复制了您的代码,并且它按照预期工作。但是请注意,您需要手动编辑工作表上的单元格A1,其中的代码用于获取MsgBox

它对meCan工作正常您可以双重确保它位于正确的工作表代码区域吗?然后在即时窗口中键入
Application.EnableEvents=True
,然后选中OK,这很有效(“即时窗口中的
Application.EnableEvents=True
”注释),谢谢您提供的即时窗口提示。我的代码的第一行(
Application.EnableEvents=True
)应该可以处理,不是吗?如果
Application.EnableEvents=False
,那么事件将不会触发,代码将永远不会运行。托马斯,你的思路是对的。但是你需要再添加一行来解释如何打开它:)@DaneelOlivaw:见我在你问题下的最后一句评论;)@悉达多我试图澄清我的答案,但仍然遗漏了一些东西。我只是不知道如何扩展它并继续讨论这个话题。感谢您的输入。您正在偏离轨道:)