【问题标题】:Excel Macro Row incrementExcel 宏行增量
【发布时间】: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 行。我认为这段代码以及您的理解将从阅读我上面发布的链接中受益匪浅。 (反正对我有用)。

标签: vba excel


【解决方案1】:

虽然我不太了解您要做什么,但也许这会有所帮助。

Sub test()
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.ClearContents
Rows("52:52").Copy
    Range("A1").End(xlDown).Offset(1, 0).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2019-05-19
    • 2023-03-30
    • 2016-02-08
    相关资源
    最近更新 更多