我遇到与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都以相同的方式做出反应。是否有一个调用宏的触发器,我还必须更改名称?
答案 0 :(得分:2)
Private Sub Worksheet_Change(ByVal Target As Range)
是一个事件。它被系统调用,HAS被命名为
这里有一些阅读,供您了解更多
答案 1 :(得分:2)
您无法更改工作表事件的方法名称。
此名称是VBA知道在工作表中更改某些内容时应该触发此方法的方式。