Sheet2以降のシートにあるデータをSheet1に集約したいと思います。
Sheet2以降のシートのフォーマットは共通なのですが、データ量(行数)はシートによって異なります(開始が2行目なのは同じ)。
また、シート数も作業ファイルによって異なります。
(例)
Sheet2:50行、Sheet3:70行、Sheet4:200行だった場合
↓
Sheet1の1行目から50行目にsheet2の内容を、
Sheet1の51行目から120行目にsheet3の内容を、
Sheet1の121行目から320行目にsheet4の内容を代入する
Sub test() Dim cnt As Long Dim saisyugyo As Long Dim ws, ws1 As Worksheet Set ws1 = Worksheets("sheet1") For Each ws In Worksheets If ws.Index <> 1 Then saisyugyo = ws.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row For cnt = 2 To saisyugyo ws1.Range("A" & ★ & ":B" & ★).Value = ws.Range("A" & cnt & ":B" & cnt).Value Next Else End If Next ws End Sub
For Each構文を使い、Sheet2以降は1行目から最終行目までを1行ずつSheet1に代入し、全て代入したら次のシートに行く、というのがいいかなと思ったのですが、Sheet1に貼り付ける位置を1行ずつ下にずらしていくところで良い考えが浮かびません。
(★マークのところが該当するかと思います)
なお、Sheet2以降のシートのデータをA2セルから最後のセルまでひとかたまりにコピー&ペーストする方法をとらないのは、処理が重くなるのを防ぐためです。
実際にコピー&ペーストの方法で試したら、処理の途中でPCが止まってしまいました。
(あくまで上記例は「例」で、実際はもっとデータ量、シート枚数が多いのです)
良い方法がありましたらご教授頂けますと助かります。
どうぞよろしくお願いいたします。
Excel2010
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/07/31 00:45