前提・実現したいこと
2枚目シート以降を一枚のシートにまとめたいです。
今作成しているコードは全部のシートをひとつにまとめる処理になっています。
該当のソースコード
Sub test() 'シート名Aに本部部分のシートを一つにまとめる Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "A" 'すべてのシートで処理 Dim w As Worksheet For Each w In Worksheets 'ただし、シート名が「A」を除く If w.Name <> "A" Then 'コピーする各シートのデータで最も下にあるデータの行を探す(A列にデータがあることが前提) Dim From_Max_Row As Long From_Max_Row = w.Range("a" & Rows.Count).End(xlUp).Row '貼り付け先のシート「A」で最も下にあるデータの行を探す Dim To_Max_Row As Long To_Max_Row = Worksheets("A").Range("a" & Rows.Count).End(xlUp).Row '各シートのデータを1行目からすべてコピーし、「A」に貼り付けていく w.Rows("1:" & From_Max_Row).Copy Worksheets("A").Range("a" & To_Max_Row) End If Next End Sub
試したこと
For文で2枚目以降のシートを選択というコードをいれたのですがエラーがでてしまいます。
発生している問題・エラーメッセージ
オブジェクト変数またはWithブロック変数が設定されていません
Sub test() 'シート名Aに本部部分のシートを一つにまとめる Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "A" '2枚目以降のシートを選択 Dim w As Worksheet Dim i As Long '繰り返し処理 For i = 2 To Worksheets.Count Worksheets(i).Select 'ただし、シート名が「A」を除く If w.Name <> "A" Then 'コピーする各シートのデータで最も下にあるデータの行を探す(A列にデータがあることが前提) Dim From_Max_Row As Long From_Max_Row = w.Range("a" & Rows.Count).End(xlUp).Row '貼り付け先のシート「A」で最も下にあるデータの行を探す Dim To_Max_Row As Long To_Max_Row = Worksheets("A").Range("a" & Rows.Count).End(xlUp).Row '各シートのデータを1行目からすべてコピーし、「A」に貼り付けていく w.Rows("1:" & From_Max_Row).Copy Worksheets("A").Range("a" & To_Max_Row) End If Next End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/30 08:45