|
こんにちは。
for next の書き方、かたちは決まっているんです。
そのかたちのまんま書けばいいです。
・まず1行目に「for i = 1 to n」と書きます。
・その2行下に「next i」と書いてしまいます。
あとで書こうと思っていると、忘れることがあります。
・そしてあいだの行に、繰り返したい内容をまずはコピペで持ってきて
適宜字下げをおこない、
・ループのたびに変えたい部分を、iを使った形に書き換えます。
今回のだったら、コピー元が i 行目になりますね。
・さいごに、ループのたびに実行しなくても1回実行すれば足りることを
ループの外に追い出します。
山中成利さんのコードに、上記の手順をあてはめたコードがこれです。
改善の余地はありますが、それは for next とはべつの話です。
むつかしいことは一度に1つずつ、です。
Sub test()
Dim i As Long
Dim n As Long
n = 3 '仮
Windows("calculation.xls").Activate
Sheets("data2").Select
Rows("1:1").Select
For i = 1 To n
Windows("data.xls").Activate
Rows(i & ":" & i).Select
Selection.Copy
Windows("calculation.xls").Activate
ActiveSheet.Paste
Next i
Application.CutCopyMode = False
End Sub
▼山中成利 さん:
>1行目からn行目まで順に別のシートの1行目にコピーしたい。
>次のようなマクロで動かしているのですが、量が膨大になると書いてられません。
>
>Windows("data.xls").Activate
>Rows("1:1").Select
>Selection.copy
>Windows("calculation.xls").Activate
>Sheets("data2").Select
>Rows("1:1").Select
>ActiveSheet.Paste
>Application.CutCopyMode = False
>
>Windows("data.xls").Activate
>Rows("2:2").Select
>Selection.copy
>Windows("calculation.xls").Activate
>Sheets("data2").Select
>Rows("1:1").Select
>ActiveSheet.Paste
>Application.CutCopyMode = False
>
>for nextの書き方がよくわかりません。
>ご教示願えれば幸いです。
>よろしく
|
|