2

我想弄清楚一些事情。到目前为止,我真的没有任何代码可供查看,除了我正在玩这一行。为什么我不能使用 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 中工作。

4

1 回答 1

3

Target是使用 Events时的参数名称。

前任。

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

除非您在代码中的某处声明它,否则没有对目标的引用(注意:常规代码模块

Sub Main()

    Dim Target As Range
    Set Target = ActiveCell

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

End Sub

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

于 2013-11-06T11:49:34.247 回答