我有这段代码:
Public Sub test()
Dim Tgt As Range
Set Tgt = Range("A1")
End Sub
我想更改当前为“A1”的Tgt的引用,我只想更改列,而不是行,但我不想再次设置Range(“XX”)。
还有其他方法可以更改Tgt栏吗?
如果我做Tgt.Column = 3,则不可能。
答案 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