在单元格更改上执行代码的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)
是一个事件。 它被系统调用,并被这样命名
这里有一些阅读让你学习更多
您不能更改工作表事件的方法的名称。
这个名字是VBA如何知道这个方法应该在工作表中改变的时候被触发。