admin 管理员组文章数量: 887021
2023年12月18日发(作者:electrical英语翻译)
VBA中工作表事件参数Target
VBA中工作表事件 参数Target
2010-09-29 10:29
在工作表的SelectionChange事件中,参数Target代表新选定的区域,在工作表的Change事件中参数Target代表更改的区域。在实际应用中可以使用Target参数将触发工作表事件的区域限制在一定的范围内,有以下几种方法:
1、使用单元格的Address 属性
使用单元格的Address属性可以将触发条件限制在某一个单元格中,如下面的代码所示。
1. Private Sub Worksheet_SelectionChange(ByVal Target
As Range)
2. If s(0, 0) = "A1" Then
3. MsgBox "你选择了A1单元格"
4. End If
5. End Sub
复制代码
代码解析:
当选择工作表A1单元格时显示一个消息框。
第2行代码使用Address属性返回所选单元格的区域引用,当返回的区域引用是“A1”时触发SelectionChange事件,显示一个消息框。
此方法只适用于单个单元格或者加上OR运算符可以适用于几个单元格,多则不方便。
2、使用Column属性和Row属性
使用单元格的Column属性和Row属性可以将触发条件限制在某一区域内,如下面的代码所示。
1. Private Sub Worksheet_Change(ByVal Target As Range)
2. If = 1 And < 11 Then
3. (, 1) = Val(Target) * 3
4. End If
5. End Sub
复制代码
代码解析:
当改变工作表的A1到A10单元格时,如果输入的是数值则将在对应的B列单元格写入乘以3的数值。
第2行代码使用Column属性将触发条件限制在第1列,使用Row属性将触发条件限制在第10行以内,也就是A1到A10的区域范围内。
3、使用Intersect方法
使用Intersect方法可以很方便的指定一个或多个区域范围,如下面的代码所示。
1. Private Sub Worksheet_SelectionChange(ByVal Target
As Range)
2. If Not ect(Target,
Union(Range("A1:A10"), Range("C1:C10"))) Is Nothing Then
3. MsgBox "你选择了" & s(0, 0) & "单元格"
4. End If
5. End Sub
复制代码
代码解析:
当选择工作表A1到A10,C1到C10单元格时将所选的单元格地址显示在消息框中。
第2行代码使用Intersect方法判断所选单元格是否与A1到A10,C1到C10单元格重叠,如果重叠说明所选单元格在A1到A10,C1到C10单元格区域内。Intersect方法返回一个Range对象,此对象代表两个或多个范围重叠的矩形区域,语法如下:
ect(Arg1, Arg2, ...)
参数expression是可选的,返回一个Application对象。
参数Arg1, Arg2, ...是必需的,重叠的区域。必须指定至少两个
Range对象。
版权声明:本文标题:VBA中工作表事件参数Target 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702891340h434879.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论