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

我有同样的问题在这篇文章。 给出的答案,是做了什么问,它执行代码时,给定的单元格更改。

它也适用于我,除非当我尝试将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都有同样的反应。 是否有触发macros的触发器,在那里我也必须更改名称?

 Private Sub Worksheet_Change(ByVal Target As Range) 

是一个事件。 它被系统调用,并被这样命名

这里有一些阅读让你学习更多

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

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

这个名字是VBA如何知道这个方法应该在工作表中改变的时候被触发。