为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2019-08-03 03:03:11
在单元格更改时自动执行Excel宏如何在特定单元格中的值每次更改时自动执行Excel宏?现在,我的工作代码是:Private Sub Worksheet_Change(ByVal Target As Range)     If Not Intersect(Target, Range("H5")) Is Nothing Then MacroEnd Sub哪里"H5"被监控的特定细胞Macro宏的名称。有更好的办法吗?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞


你的代码看起来不错。

但是,要小心,因为你呼吁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

希望这能帮上忙.。



查看完整回答
反对 回复 2019-08-04
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我更喜欢这种方式,不是用手机,而是使用范围。

    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




查看完整回答
反对 回复 2019-08-04
  • 3 回答
  • 0 关注
  • 306 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信