2016-10-24 8 views
0

Xの行を追加するために必要なスプレッドシートがあります。以下のコードは私が現在持っているものです。私は、私は別の行の量が必要なたびに、このマクロを変更する必要があります。Excelのセル内の数値に基づいてコードを繰り返す方法は?

このマクロを書くことで、Xの行数を生成できるかどうか、XはユーザーがセルA1に入力する数字です。

したがって、どのコードをCell A1の読み込みに使用できますか?次に、コードをループして、A10 X回の連続で行を追加するにはどうしたらいいですか?

Sub Insert_specific_rows() 
Dim CurrentSheet As Object 
    For Each CurrentSheet In ActiveWindow.SelectedSheets   
    CurrentSheet.Range("A10:A138").EntireRow.Insert 
    Next CurrentSheet 
End Sub 

さらに、それは新しい行を追加するとき、それはまた、Z9を通じてB9から下のすべてのセルをコピーをもたらすように、このコードを書き換える方法はありますか?すべてのあなたの助けにSOLUTIONで編集

----

ので、おかげで、ここで私が今持っているコードです。しかし、私はこれを50,000行まで行う必要があります。このコードは、行ごとに表示されます。これを改善する方法に関する提案はありますか?

多分、すべての行を追加し、数式を1つコピーダウンする必要がありますか?

更新式:

Sub All_Lines_Add_Rows_Macro() 
Dim CurrentSheet As Object 
Dim numRows As Long 
For Each CurrentSheet In ActiveWindow.SelectedSheets 
    numRows = InputBox("How many lines is your CDM?", "Rows to Add") - 1 
    Range("A10:Z10").ClearContents 
    For i = 1 To numRows 
     CurrentSheet.Range("A10").EntireRow.Insert 
     CurrentSheet.Range("AA9:EY9").Copy 
     CurrentSheet.Range("AA10").PasteSpecial Paste:=xlPasteAll 
     Application.CutCopyMode = False 
    Next i 
    Rows(9).EntireRow.Delete 

Next CurrentSheet 

End Subの

私は 'のI' ループに追加ラインを残すと思います。そして、すべての行が追加されたら、どうすればA10から(A10 + X - 1行)にコピーできますか?

+0

usedrangeを参照して、入力してください –

+0

数字を取得するために「InputBox」を追加することができます。 http://www.exceltrick.com/formulas_macros/vba-inputbox/ –

答えて

0

あなたの質問を理解している場合は、各シートのA1の値を確認して、その行を追加しますか?

Sub Insert_specific_rows() 
    Dim CurrentSheet As Object 
    Dim numRows As Long 
    For Each CurrentSheet In ActiveWindow.SelectedSheets 
     numRows = CurrentSheet.Range("A1").Value 
     CurrentSheet.Range("A10:AE10").Delete 
     for i = 1 to numRows   
      CurrentSheet.Range("A10").EntireRow.Insert 
     next i 
     CurrentSheet.Range("B9:Z9").Copy 
     CurrentSheet.Range("B10:B" & (9 + numRows)).PasteSpecial Paste:=xlPasteAll 
     Application.CutCopyMode = False 
     CurrentSheet.Rows(9).EntireRow.Delete 
     CurrentSheet.Rows(9).Insert Shift:=xlDown 
    Next CurrentSheet 
End Sub 
+0

素晴らしい!本当にありがとう、これは働いた! これで、行を追加する前に、A10からAE10までクリアすることができます。 – Adrenalist

+0

&これらの行を追加した後、私は行A9を削除したいと思います。簡単にしなければならない、私はちょうどVBAコードを知らない。 – Adrenalist

+0

「行」「A9」またはセル「A9」を削除しますか? – PartyHatPanda

関連する問題