ブック内の全てのシート(転記先シートを除く)のデータを、同じブック内のシートに転記する方法を教えてください。
###前提・実現したいこと
シート数が6シートあるものがマクロ出力後、
「まとめ」シートが新しく自動に作られ、そこに各シートの内容が縦に集約されるようにしたい。
・イメージ
「シート1」
「シート2」
「シート3」
・
・
・
###現状
→データは、「A6」セルから入力されており、各シートによって行数が変動します。
(変動するため、最終行取得のコードで対処)
→シート数は6シート。
→転記させたいデータは、「行:変動」「列:「AからM」になります。
→転記先では、シートの「A6」セルに転記させたいです。
→調べながらコードを記述してみましたが、
実行するとすべて転記されず、1シート目と2シート目のA6行のみしか転記されない状態で、
困っております。
ご教授のほど、よろしくお願い致します。
該当のソースコード
Sub Macro1() Dim newWS As Worksheet Set newWS = ThisWorkbook.Worksheets.Add(before:=ThisWorkbook.Worksheets(1)) newWS.Name = "まとめ" Dim ws As Worksheet Dim endRow As Long Dim endClm As Long Dim srcEndRow As Long Dim srcEndClm As Long endRow = 0 For Each ws In ThisWorkbook.Worksheets If ws.Name <> "まとめ" Then If endRow = 0 Then endClm = ws.Cells(4, Columns.Count).End(xlToLeft).Column endRow = ws.Cells(4, 1).End(xlDown).Row ws.Range(ws.Cells(4, 1), ws.Cells(endRow, endClm)).Copy newWS.Cells(4, 1) Else srcEndClm = ws.Cells(4, Columns.Count).End(xlToLeft).Column srcEndRow = ws.Cells(4, 1).End(xlDown).Row If srcEndClm = endClm And srcEndClm < Rows.Count Then ws.Range(ws.Cells(6, 1), ws.Cells(srcEndRow, endClm)).Copy newWS.Cells(endRow + 1, 1) endRow = endRow + srcEndRow - 1 End If End If End If Next ws Set newWS = Nothing End Sub
回答3件
あなたの回答
tips
プレビュー