dポイントプレゼントキャンペーン実施中!

こんにちは。VBAは苦手なので教えてください。

EXCELのsheet1にあるリストに、下記マクロで1行おきに
空白行を挿入しました。

Sub test1()
'隔行で空白行を挿入
Dim rw As Long 'セル
For rw = Range("A1").End(xlDown).Row To 2 Step -1
Rows(rw).Insert
Next
End Sub

同じファイルのSheet2の1行目<Rows("1:1")>に、計算式が入力されています。
マクロで挿入した空白行全てを選択し、そこへSheet2の1行目のコピーを
貼り付けたいです。

ぜひ、良い方法を教えてください。

A 回答 (2件)

>このマクロだと、一番最後のデータ行の下には式がコピーされないのですが、


>何か解決法があるでしょうか?

質問からはこのことが不明で、
『行を挿入したシートの最終行の下にも算式が必要な場合は、
  Range("A65536").End(xlUp).Row + 1 とします。 』
と書いたんですが、ちゃんと全部書くと、下のようになります。


(例1)
  For rw = Range("A65536").End(xlUp).Row + 1 To 2 Step -2
    Sheets("Sheet2").Rows("1:1").Copy Destination:=Rows(rw)
  Next

(例2)
  Sheets("Sheet2").Rows("1:1").Copy
  For rw = Range("A65536").End(xlUp).Row + 1 To 2 Step -2
    Rows(rw).Select: ActiveSheet.Paste
  Next
    • good
    • 0
この回答へのお礼

そういうことだったんですね。すみませんでした。

おかげで何とか組めました!ありがとうございます。
また機会がありましたら御教授お願いします。

お礼日時:2002/08/22 14:46

処理例を2つ書いてみました。


Sheet2の1行目の算式の内容は分からないので、行をコピーしてそのまま貼り付けています。

行を挿入したシートの最終行の下にも算式が必要な場合は、
  Range("A65536").End(xlUp).Row + 1 とします。


(例1)
  For rw = Range("A65536").End(xlUp).Row - 1 To 2 Step -2
    Sheets("Sheet2").Rows("1:1").Copy Destination:=Rows(rw)
  Next

(例2)
  Sheets("Sheet2").Rows("1:1").Copy
  For rw = Range("A65536").End(xlUp).Row - 1 To 2 Step -2
    Rows(rw).Select: ActiveSheet.Paste
  Next

この回答への補足

ありがとうございます。うまくできました!
それから、できればもう1つ教えてください。
このマクロだと、一番最後のデータ行の下には式がコピーされないのですが、
何か解決法があるでしょうか?

補足日時:2002/08/22 11:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています