范围 - 更改参考

时间:2014-08-08 22:55:47

标签: excel vba excel-vba

我有这段代码:

Public Sub test()
    Dim Tgt As Range
    Set Tgt = Range("A1")
End Sub

我想更改当前为“A1”的Tgt的引用,我只想更改列,而不是行,但我不想再次设置Range(“XX”)。

还有其他方法可以更改Tgt栏吗?

如果我做Tgt.Column = 3,则不可能。

2 个答案:

答案 0 :(得分:3)

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

看看Range.Offset(RowOffset, ColumnOffset)

在你的情况下,它就像是:

Set Tgt = Range("A1").Offset(0, 2)

为了将您的范围Tgt偏移 0 ,将 2 列向右偏移,即在同一行和列中 C 列,产生单元格C1

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

答案 1 :(得分:2)

Tgt.Offset(0,2)

这会将Tgt列移动到C / 3