Excel VBA在单元格更改时自动运行宏。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (230)

是否有一种简单的方法可以让Excel在更改单元格时自动执行宏?

有问题会在Worksheet("BigBoard").Range("D2")

我认为谷歌的一个简单的查询是更复杂的--每个样本都涉及到交叉(不管是什么)、颜色格式或者其他看起来不相关的东西。

提问于
用户回答回答于

是的,这可以通过使用工作表事件来实现:

在VisualBasic编辑器中,打开感兴趣的工作表(即。(“Bigboard”)通过双击左上角树中工作表的名称。在模块中放置以下代码:

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
    On Error Goto Finalize 'to re-enable the events      
    MsgBox "You changed THE CELL!"
Finalize:        
    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

我相信这比Intersect,如果工作表发生了很大变化,这将是有帮助的。

扫码关注云+社区