1

このコードは 2 回または 3 回機能し、「Range クラスの PasteSpecial メソッドが失敗しました」というエラーが表示されます。何もコピーされていないときにエラーが発生することはわかっていますが、真上にコピーされていることを考えると、なぜ機能しないのかわかりません。

デバッグして段階的に見ると、Sub の最後まで実行するのではなく、Paste 行の後に最初にループバックします。

Sub AddRows()
   Range("A11").End(xlDown).EntireRow.Copy
   Range("A11").End(xlDown).Offset(1, 0).PasteSpecial xlPasteAll
   Application.CutCopyMode = False
End Sub

何か案は?よろしくお願いします!

4

1 に答える 1

0

以下のコードを試してください: コピーと貼り付けの操作を 1 行にまとめることができます。以下のコードは、セルからデータのある最後のセルまで範囲をコピーし、その下A11のすぐ次のセルにデータを貼り付けます。

 Sub AddRows()


    Dim lastRow As Long
    lastRow = Range("A" & Rows.Count).End(xlUp).Row

    Dim rng As Range
    Set rng = Range("A11:A" & lastRow)

    ' Next row
    rng.Copy Cells(lastRow + 1, 1)

    'if you want data to be pasted to Column B use below
    'rng.Copy rng.Offset(0, 1)
End Sub
于 2013-05-10T19:14:09.200 に答える