Vba 变距基准

Vba 变距基准,vba,excel,Vba,Excel,我有以下代码: Public Sub test() Dim Tgt As Range Set Tgt = Range("A1") End Sub 我想更改当前为“A1”的Tgt的引用,我只想更改列,而不是行,但我不想再次设置范围(“XX”) 有没有其他方法可以更改Tgt的列 如果我使用Tgt.Column=3,这是不可能的 Tgt.Offset(0,2) 这将把Tgt列移到C/3 这将把Tgt列移动到C/3,正如您所发现的,Tgt.Column=3将不起作用。这是因为范围对象

我有以下代码:

Public Sub test()
    Dim Tgt As Range
    Set Tgt = Range("A1")
End Sub
我想更改当前为“A1”的Tgt的引用,我只想更改列,而不是行,但我不想再次设置范围(“XX”)

有没有其他方法可以更改Tgt的列

如果我使用Tgt.Column=3,这是不可能的

Tgt.Offset(0,2)
这将把Tgt列移到C/3


这将把Tgt列移动到C/3,正如您所发现的,
Tgt.Column=3
将不起作用。这是因为
范围
对象的
属性是只读的,因此无法设置其值,只能读取/获取它

看一看

在你的情况下,应该是这样的:

Set Tgt = Range("A1").Offset(0, 2)
为了将称为
Tgt
的范围向右偏移02列,即在同一行中,从列A到列C,导致单元格
C1


请注意,
Range.Offset的正参数分别向下偏移(行)和向右偏移(列)。负参数将向相反方向偏移。

正如您所发现的,
Tgt.Column=3
将不起作用。这是因为
范围
对象的
属性是只读的,因此无法设置其值,只能读取/获取它

看一看

在你的情况下,应该是这样的:

Set Tgt = Range("A1").Offset(0, 2)
为了将称为
Tgt
的范围向右偏移02列,即在同一行中,从列A到列C,导致单元格
C1


请注意,
Range.Offset的正参数分别向下偏移(行)和向右偏移(列)。负参数将以相反的方向偏移。

可能是这样的:
设置Tgt=Range(“A1”)。偏移量(0,3)
其中3是要偏移的列数。这将产生“D1”。可能是这样的:
Set Tgt=Range(“A1”)。Offset(0,3)
其中3是要偏移的列数。这将产生“D1”。虽然您的答案很全面,但我认为@cronos2546达到了目的。OP不想再次设置
Tgt
,而是想通过它访问3列。顺便说一句,这正是我所想的。虽然你的答案很全面,但我认为@cronos2546击中了要害。OP不想再次设置
Tgt
,而是想通过它访问3列。顺便说一句,我就是这么想的。