在单元格更改时自动执行Excel宏

在单元格更改时自动执行Excel宏

如何在特定单元格中的值每次更改时自动执行Excel宏?

现在,我的工作代码是:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H5")) Is Nothing Then MacroEnd Sub

哪里"H5"被监控的特定细胞Macro宏的名称。

有更好的办法吗?


偶然的你
浏览 1895回答 3
3回答

侃侃无极

你的代码看起来不错。但是,要小心,因为你呼吁Range("H5")的快捷命令。Application.Range("H5"),这相当于Application.ActiveSheet.Range("H5")..如果唯一的更改是用户-更改-这是最典型的-这可能是很好的-但是工作表的单元格值可以通过编程更改(例如VBA)来更改,当它不是活动工作表时。考虑到这一点,我会利用Target.Worksheet.Range("H5"):Private Sub Worksheet_Change(ByVal Target As Range)     If Not Intersect(Target, Target.Worksheet.Range("H5")) Is Nothing Then MacroEnd Sub或者你可以用Me.Range("H5"),如果事件处理程序位于有关工作表的代码页上(通常是这样):Private Sub Worksheet_Change(ByVal Target As Range)     If Not Intersect(Target, Me.Range("H5")) Is Nothing Then MacroEnd Sub希望这能帮上忙.。

小唯快跑啊

我更喜欢这种方式,不是用手机,而是使用范围。    Dim cell_to_test As Range, cells_changed As Range    Set cells_changed = Target(1, 1)     Set cell_to_test = Range( RANGE_OF_CELLS_TO_DETECT )     If Not Intersect(cells_changed, cell_to_test) Is Nothing Then         Macro    End If
打开App,查看更多内容
随时随地看视频慕课网APP