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

时间:2015-07-24 13:07:35

标签: excel vba excel-vba

我遇到与this帖子相同的问题。给出了答案,做了所要求的,它在给定单元格更改时执行了代码。

它对我有用,除非我尝试将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

当我更改名称时,两个Subs都以相同的方式做出反应。是否有一个调用宏的触发器,我还必须更改名称?

2 个答案:

答案 0 :(得分:2)

Private Sub Worksheet_Change(ByVal Target As Range)

是一个事件。它被系统调用,HAS被命名为

这里有一些阅读,供您了解更多

http://www.cpearson.com/excel/Events.aspx

答案 1 :(得分:2)

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

此名称是VBA知道在工作表中更改某些内容时应该触发此方法的方式。