Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2513|回复: 4

[已解决]請教指定範圍表格變動, 運行宏的方法

[复制链接]
发表于 2015-7-3 14:07 | 显示全部楼层 |阅读模式
本帖最后由 010203400 于 2015-7-3 17:27 编辑

求一個宏:
指定範圍內的單元格, 內容有變化時, 開始RUN宏.

關鍵是: 我要如何設定指定範圍, 請幫忙給一段代碼.
最佳答案
2015-7-3 15:33
本帖最后由 爱疯 于 2015-7-3 15:35 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r, c
    r = Target.Row: c = Target.Column
    '假设指定范围是 B2:D3
    If r > 1 And r < 4 And c > 1 And c < 5 Then MsgBox "指定范围中,发生了值改变"
End Sub





Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, [d5:f8]) Is Nothing Then MsgBox "指定范围中,发生了值改变"
    'Application.Intersect 方法
    '返回一个 Range 对象,该对象表示两个或多个区域重叠的矩形区域。
    '假设指定范围是 D5:F8

End Sub



两种常见方式。
如果需要,再加条件 target.count
2.rar (8.6 KB, 下载次数: 3)
发表于 2015-7-3 14:18 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-7-3 15:17 | 显示全部楼层
qh8600 发表于 2015-7-3 14:18
工作表事件

這個知道, 但我想要的不是這個工作中所有單元格有變化, 就RUN宏.
我想限制區域.

對這塊我不熟, 能幫忙給個代碼嗎.
回复

使用道具 举报

发表于 2015-7-3 15:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2015-7-3 15:35 编辑

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r, c
    r = Target.Row: c = Target.Column
    '假设指定范围是 B2:D3
    If r > 1 And r < 4 And c > 1 And c < 5 Then MsgBox "指定范围中,发生了值改变"
End Sub





Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, [d5:f8]) Is Nothing Then MsgBox "指定范围中,发生了值改变"
    'Application.Intersect 方法
    '返回一个 Range 对象,该对象表示两个或多个区域重叠的矩形区域。
    '假设指定范围是 D5:F8

End Sub



两种常见方式。
如果需要,再加条件 target.count
2.rar (8.6 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2015-7-3 17:26 | 显示全部楼层
爱疯 发表于 2015-7-3 15:33
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r, c
    r = Target.Row: c = Target.Co ...

非常感謝.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 16:49 , Processed in 0.282912 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表