首先说明,单从字面上来理解,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列位置赋值。