- ベストアンサー
最終データまで下方に繰り返すマクロ
office xp excel シート1A1:H100 の表があるとします。 A3からデータが入っています。 A3:H8を選択し、シート2のA3:H8にコピペします。 次にシート1に戻ってA9:H14を選択して、シート2の同じA3:H8に上書きコピペします。 これをA100まで繰り返しますが、途中でデータがなくなればそこで終了します。 この6行8列をひとつの選択単位として下方にずれていくにはどういうマクロを組めばいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
sub macro1() dim i as long worksheets("Sheet1").select for i = 3 to 100 step 6 if cells(i, "A") = "" then exit sub end if cells(i, "A").resize(6, 8).copy destination:=worksheets("Sheet2").range("A3:H8") next i end sub #1) 簡単な算数ですが,3行目から6行ステップで進行していくのでは,A100までになりません。 #2) 「途中でデータが無くなる」とは,具体的にどういうシチュエーションなのか不明瞭です。 #3) 終了の条件が来るまでイチイチコピーを繰り返し,一回前の実施結果を潰していくのはいかにも無駄な作業ですね。 そういった部分をきちんと手当てして,サンプルのマクロを応用して自作してください。 sub macro2() dim i as long for i = 3 to 99 step 6 if worksheets("Sheet1").cells(i, "A") = "" then worksheets("Sheet1").cells(i - 6, "A").resize(6, 8).copy _ destination:=worksheets("Sheet2").range("A3:H8") exit sub end if next i end sub
その他の回答 (1)
- 佐藤 志緒(@g4330)
- ベストアンサー率18% (840/4653)
シート2のA3:H8は最後にコピーした内容になってしまうのですが、A3からA100までを繰り返す意味が理解できない。
お礼
回答ありがとうございます。 >シート2のA3:H8は最後にコピーした内容になってしまうのですが、 かまいません。 >A3からA100までを繰り返す意味が理解できない。 6行8列をひとつの枠として他で編集しています。 この作業が終了したらまた次の下方の6行8列を選択して編集したいわけです。
お礼
ありがとうございます。 すこし進みました。 質問の表現方法というのはむずかしいものですね。