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无法处理名称更改_Vba_Excel - Fatal编程技术网

在单元格更改时执行代码的VBA无法处理名称更改

在单元格更改时执行代码的VBA无法处理名称更改,vba,excel,Vba,Excel,我的问题和波斯特一样。给出的答案,做了所要求的,当给定的单元格被更改时,它执行代码 它也对我有效,除了当我尝试将Sub的名称更改为其他名称时,代码停止执行。没有发出任何警告。有人知道为什么吗 这是解决前一个问题的代码: Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub Application.Enable

我的问题和波斯特一样。给出的答案,做了所要求的,当给定的单元格被更改时,它执行代码

它也对我有效,除了当我尝试将Sub的名称更改为其他名称时,代码停止执行。没有发出任何警告。有人知道为什么吗

这是解决前一个问题的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub
    Application.EnableEvents = False 'to prevent endless loop

    MsgBox "You changed THE CELL!"

    Application.EnableEvents = True
End Sub
或者作为一个简短的版本

Private Sub Worksheet_Change(ByVal Target As Range)
    IF Target.Address = "$D$2" Then
        MsgBox("Cell D2 Has Changed.")
    End If
End Sub
当我改变他们的名字时,两个潜艇的反应都是一样的。是否有一个调用宏的触发器,在那里我还必须更改名称

Private Sub Worksheet_Change(ByVal Target As Range)
这是一件大事。它由系统调用,必须这样命名

这里有一些阅读资料供你进一步了解

这是一件大事。它由系统调用,必须这样命名

这里有一些阅读资料供你进一步了解


无法更改工作表事件的方法名称


此名称是VBA知道在工作表中发生更改时应触发此方法的方式。

不能更改工作表事件的方法名称


此名称是VBA知道在工作表中发生更改时应触发此方法的方式。

代码存根
私有子工作表\u Change(ByVal Target As Range)
是更改
工作表
对象时触发的事件代码。如果更改名称,则工作表更改时代码不会自动激发。代码存根
私有子工作表\u change(ByVal Target As Range)
是更改
工作表
对象时激发的事件代码。如果更改名称,则当工作表更改时,代码不会自动触发。