用于粘贴行的columns属性

时间:2012-11-02 13:43:23

标签: vba excel-vba excel

您好我有复制特定行的代码并将其粘贴到特定列中 代码是

 Range(rng, rng.End(xlToRight)).copy
 Columns(c).Offset(, 6).PasteSpecial Transpose:=True

工作正常 但是当我想从特定列i的2个单元格开始粘贴它时,e

 Range(rng, rng.End(xlToRight)).copy
 Columns(c).Offset(2, 6).PasteSpecial Transpose:=True
它正在给予 “对象定义的错误”

请帮帮我

2 个答案:

答案 0 :(得分:2)

这应该有效:

Cells(2, Cells(1,Columns(c).Column).offset(,6).Column).PasteSpecial Transpose:=True

在上面的内容中,您要按Cells(2,选择第2行,在Columns(c).Column).Offset(,6).Column)

之前选择任意c的右侧6列

Columns(c).Offset(2,6)不起作用的原因是因为你告诉excel将Entire Column偏移2行,你不能这样做,因为它会有效地将数据从工作表中删除。

对于给定数量的列,您可以偏移EntireColumns,对于给定的行数,可以偏移EntireRows,但不能按行EntireColumns和按列EntireRows偏移{{1}}。

答案 1 :(得分:2)

您不能逐行偏移,列始终是整数。你应该偏移一个单元格。

Columns(c).cells(1).Offset(1, 6).PasteSpecial Transpose:=True

Columns(c).cells(2).Offset(, 6).PasteSpecial Transpose:=True

Columns(c).cells(2, 7).PasteSpecial Transpose:=True

cells(2, c+6).PasteSpecial Transpose:=True