以前にも似たような質問 http://q.hatena.ne.jp/1416819276 はしたのですが。
Excelで今、A列からAM列に5万行ぐらいデータが入っています。
この状況におきまして、4行目から45行目のデータを、関数も含めてコピーしまして。
それを、49行目の真下、52行目、55行目、58行目、61行目の真下・・・と、49行目を起点に、3行置きにコピーしたデータを挿入していきたいのです。
これを実現できるマクロ等、ご存知でしたらお教えいただけますと幸いです。
よろしくお願い致します。
対象のシートを選択した状態で、copy_rows サブルーチンを実行してください。
Sub copy_rows() row_s = 4 ' コピー元開始行 row_e = 45 ' コピー元終了行 row_dest = 49 ' コピー先開始行 copy_step = 3 ' コピー先増分 last_row = Cells(Rows.Count, 1).End(xlUp).Row n = Application.RoundDown((last_row - row_dest) / copy_step, 0) + 1 row_dest = row_dest + 1 n_copy = row_e - row_s + 1 For i = 1 To n Range(row_s & ":" & row_e).Copy Range(row_dest & ":" & row_dest + n_copy).Insert row_dest = row_dest + n_copy + copy_step DoEvents Next End Sub
こういうことが、今後、何回あるか分かりませんが、基準になる数字を先頭の方にまとめてみました。
シートのコピーとかしてませんので、バックアップを取ってから実行してください。
動作が完了するまでかなり時間がかかることは、前回の質問でご承知だと思うので、しばらく辛抱してください。
一応、DoEvents をループに入れているので、実行中に他のシートやブックを触ることは、できなくはありません。