EXCEL VBA:target对象

2013-09-08 15:37 阅读 714 次 评论关闭

excel的VBA,经常使用target这个对象,下面,就给你介绍target是用来干什么的,如何才能正确使用。

首先说明,单从字面上来理解,target就是目标的意思,我们也可以这样来理解,被选择的对象,其实就是要操作的目标target。

一、target的应用范围

target能在两个地方出现,一是事件,二是VBA代码中。

比如,Worksheet_SelectionChange(ByVal Target As Range) 这个事件中,就存在target对象,此用法为将单元格的范围当作目标来处理。

在VBA中的target代码,诸如:Target.Address(0, 0),就是这样来使用。

二、target应用代码范例

范例代码一

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Union(Range("A1:A10"), Range("C1:C10"))) Is Nothing Then

MsgBox "你选择了" & Target.Address(0, 0) & "单元格"

End If

End Sub

代码解释:

当选择工作表A1到A10,C1到C10单元格时将所选的单元格地址显示在消息框中。

第2行代码使用Intersect方法判断所选单元格是否与A1到A10,C1到C10单元格重叠,如果重叠说明所选单元格在A1到A10,C1到C10单元格区域内。Intersect方法返回一个Range对象,此对象代表两个或多个范围重叠的矩形区域,语法如下:

范例代码二

使用单元格的Column属性和Row属性可以将触发条件限制在某一区域内,如下面的代码所示。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Row < 11 Then

Target.Offset(, 1) = Val(Target) * 3

End If

End Sub

复制代码代码解析:

当改变工作表的A1到A10单元格时,如果输入的是数值则将在对应的B列单元格写入乘以3的数值。

第2行代码使用Column属性将触发条件限制在第1列,使用Row属性将触发条件限制在第10行以内,也就是A1到A10的区域范围内。

范例代码三

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

'这里的Target就不是区域了,是超链接

End Sub

范例代码四

if  ((Target.Row=4)and (Target.Column=3)) then

Calendar1.Visible = True

Target.Column=3'表示选中单元格在第3列
Target.Row=4'表示选中单元格在第4行

再有,Target.Offset(0, 1)=4表示在选中单元格向右偏移1列位置赋值。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:EXCEL VBA:target对象 | 猎微网
分类:Excel VBA 标签:, ,

评论已关闭!