2

2 つのシートを含む Excel ワークブックがあります。シート 1 には、列 A から R にデータの大きなテーブルがあり、行 1 にヘッダーがあります。シート 2 には、列 A から AO にデータがあります。

VBA を使用して、シート 1 から行をコピーし、シート 2 の最後に貼り付けようとしています。また、行全体ではなく、列 A から R のみをコピーする必要があります。

つまり、シート 1 のセル A2:R2 を、列 A にデータがない最初の行と 2 番目の行にコピーする必要があります。

シート 1 から必要なセルをコピーする次のコードがありますが、すべての行を 2 回コピーする方法がわかりません。

Sub example()
    For Each ce In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If Not IsEmpty(ce) Then
            Sheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 18).Value = Range(ce, ce.Offset(0, 17)).Value
        End If
    Next ce
End Sub
4

1 に答える 1

2

これを試して:

Option Explicit
Sub CopyRows()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim i As Integer, k As Integer
    Dim ws1LR As Long, ws2LR As Long

    Set ws1 = Sheets("Sheet1")
    Set ws2 = Sheets("Sheet2")

    ws1LR = ws1.Range("A" & Rows.Count).End(xlUp).Row + 1
    ws2LR = ws2.Range("A" & Rows.Count).End(xlUp).Row + 1

    i = 2
    k = ws2LR
    Do Until i = ws1LR
        With ws1
            .Range(.Cells(i, 1), .Cells(i, 18)).Copy
        End With

        With ws2
            .Cells(k, 1).PasteSpecial
            .Cells(k, 1).Offset(1, 0).PasteSpecial
        End With

        k = k + 2
        i = i + 1
    Loop
End Sub

と、ワークブックで別のものと呼ばれている場合は変更Sheet1してください。Sheet2

于 2012-10-11T11:35:05.937 に答える