質問: 2 to (最終行 - 3) * 2 step 100 sheets(2).cells(a, 4).resize(ピッチ, 2).copy sheets(3).cells(b, 1).resize(ピッチ, 2).pastespecial paste:=xlpastevalues next b next a シート1のデータ(a)を50行ずつコピーしてシート2に貼り付けたいです。 シート1にはもう一つデータ(b)があり、それも50行ずつコピーしてシート2に貼り付けたいです。 これら2つのデータはシート2に交互に貼り付けたいです。 (a)1~50 ↓ (b)1~50 ↓ (a)51~100 ↓ (b)51~100 そのため、データ(a)を50ずつコピーし100行ずつペーストするのを、データ(b)用も同じようにマクロを組めば良いと考えました。 説明下手で申し訳ありませんが、解決策をご教授願いたいです。
回答: no1です 不明点がいろいろあるので、以下、適当に仮定してサンプル的に作成してあります。 ・コピー元のスタート行は1行目からとする ・データ(a)とデータ(b)の量が不明ですが、どちらかが少なくても詰めるようなことはせず、空白行が50行できても、残りのデータをその後にペーストする。 ・説明文では「シート1」「シート2」となっていますが、コードは「sheets(2)」「sheets(3)」となっているようなので、後者を採用 ・ピッチはとりあえず50行固定で、コード中に直接定地してあります。 ※ 要領は以下の様な感じで可能と思いますので、仮定が違っている部分は調整してください。 sub sample_11878438() dim mxr as long, rw as long dim dr as range const p = 50 set dr = worksheets("sheet3").range("a1") with worksheets("sheet2") mxr = .cells(rows.count, 4).end(xlup).row mxr = application.max(mxr, .cells(rows.count, 10).end(xlup).row) for rw = 1 to mxr step p dr.resize(p, 2).value = .cells(rw, 4).resize(p, 2).value dr.offset(p).resize(p, 2).value = .cells(rw, 10).resize(p, 2).value set dr = dr.offset(p * 2) next rw end with end sub