【发布时间】:2017-01-01 17:43:55
【问题描述】:
我正在尝试在单个列中复制一系列单元格并将它们转置到上方 作为一排。 我遇到的问题是尝试增加每行被复制的行(45:45),否则所有行都会被覆盖。 当我运行宏时,我在 Destination:= Range line 上收到语法错误
Range("A53:A63").Copy
Range("A52").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=True
Range("A53:A63").Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
Rows("52:52").Cut
Rows("45:45").Select
Destination:=Range("A" & Rows.Count).End(xlDown).Offset(1, 0)
Selection.Insert
【问题讨论】:
-
使用 Rows.Count 您从底部开始,因此 xlDown 无处可去。将
End(xlDown)更改为End(xlUp) -
另外,我强烈建议您avoid using
.Select/.Activate`,因为它可能会导致无法预料的问题,但也可以大大缩短和收紧您的代码。 -
@ScottCraner - 即使有你的建议,我仍然在目标行收到语法错误
-
Destination:=不是命令,它是其他命令的命名参数。 -
试试
Rows("52:52").Cut Destination:=Range("A" & Rows.Count).End(xlUp).Offset(1, 0)...据我所知,也没有理由选择第 45 行。我认为这段代码以及您的理解将从阅读我上面发布的链接中受益匪浅。 (反正对我有用)。