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