【发布时间】:2026-01-18 01:55:01
【问题描述】:
我遇到了与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 的反应都是一样的。是否有触发器调用宏,我还必须更改名称?
【问题讨论】:
-
代码存根
Private Sub Worksheet_Change(ByVal Target As Range)是Worksheet对象更改时触发的事件代码。如果更改名称,则更改工作表时代码不会自动触发。