如何在标准模块中使用Target参数?

时间:2013-11-06 11:43:23

标签: excel vba excel-vba

我想弄出一些东西。到目前为止,我真的没有任何有用的代码,除了我正在玩这一行。为什么我不能使用ThisWorkbook下的“Target”或Excel中的VB Script模块?

以下是我尝试使用的代码行:

ActiveWorkbook.ActiveSheet.Range("A1").Value2 = ActiveWorkbook.ActiveSheet.Cells(Target.Row, Target.Column)

如果我要将这条确切的线放在一张纸上,它可以正常工作。我尝试了许多使用“目标”的变体,如果它在模块中或在ThisWorkbook下,它将无法识别它并给我一个错误。现在,如果我使用特定的位置而不是目标,例如我在下面的内容,它将毫无问题地工作。

ActiveWorkbook.ActiveSheet.Range("A1").Value2 = ActiveWorkbook.ActiveSheet.Cells(10, 1)

我能做些类似于使用“目标”的东西,它会识别我所在的当前单元格的文本,无论表单或哪个单元格处于活动状态。换句话说,所以我不必指定具体位置?我需要这个在ThisWorkbook中工作。

1 个答案:

答案 0 :(得分:2)

Targetusing Events时的参数名称。

实施例。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Private Sub Worksheet_Change(ByVal Target As Range)

除非您在代码中的某处声明( note:常规代码模块),否则不会引用目标

Sub Main()

    Dim Target As Range
    Set Target = ActiveCell

    MsgBox Target.Address & vbNewLine & Target.Row & vbNewLine & Target.Column

End Sub

除了将Target声明为变量之外,您还可以使用ActiveCell对象,其作用方式与目标相同,因为它们都是Range对象。