各シートのデータを結合先のシートにコピーして貼り付ける VBA

2024年6月17日

理解しました。修正したマクロは、各シートのデータの最初から最後までを結合します。

vba
Sub CombineSheets()
    Dim ws As Worksheet
    Dim combinedSheet As Worksheet
    Dim lastRow As Long
    Dim targetRow As Long
    
    ' 結合先のシートを作成または指定します
    Set combinedSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    combinedSheet.Name = "CombinedData"
    
    ' 各シートのデータを結合先のシートにコピーして貼り付けます
    targetRow = 1 ' 結合先の最初の行
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> combinedSheet.Name Then
            lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
            ws.Range("A1:A" & lastRow).EntireRow.Copy combinedSheet.Cells(targetRow, 1)
            targetRow = targetRow + lastRow ' 次の結合先の行を更新
        End If
    Next ws
End Sub

この修正では、各シートのデータを結合先のシートにコピーする際、それぞれのシートのデータの最初から最後までを取得して結合します。そして、結合先のシートで次の結合先の行を更新します。

未分類

Posted by ぼっち