2016-10-11 7 views
1

Iデータの既存の線の間の行数を挿入するマクロを持っている:コピー&ペーストする変数の行

私は実際にそれを行うために必要なもの
Sub test() 

Dim j As Long, r As Range 
j = InputBox("No. of rows to be inserted?") 
Set r = Range("A3") 
Do 
Range(r.Offset(1, 0), r.Offset(j, 0)).EntireRow.Insert 

Set r = Cells(r.Row + j + 1, 1) 

If r.Offset(1, 0) = "" Then Exit Do 
Loop 

End Sub 

回のライン「X」番号の挿入コピーであります空白を挿入しないでください。誰も助けることができますか?私はこのことに関する知識が不足しているため、事前に謝罪します!

Before After - AMENDED

答えて

1

前者はあなたが例のタイプでは、ユーザーの入力データ型(強制することができますので、私はApplication.InputBox()メソッドを使用して代わりのVBA InputBox() 1よこの

Option Explicit 

Sub test() 
    Dim j As Long 
    Dim rng As Range, cell As Range 
    Dim i As Long 

    j = Application.InputBox("No. of rows to be inserted?", Type:=1) 
    With Worksheets("REFS") '<-_| change "REFS" to your actual worksheet name 
     i = 1 
     With .Range("D2", .Cells(.Rows.Count, "D").End(xlUp)) 
      Do While i <= .Rows.Count 
       With .Cells(i).EntireRow 
        .Copy 
        .Offset(1).Resize(j).Insert Shift:=xlDown 
        Application.CutCopyMode = False 
       End With 
       i = i + j + 1 
      Loop 
     End With 
    End With 
End Sub 

を試してみてください:= 1つの力を数値入力

+0

本当にありがとうございますが、最初の行の「x」個のコピーのみをコピーして挿入します。次の「ユニークな」行にジャンプし、空の行に当たるまで同じプロセスを実行する必要があります。これをどのようにループするのですか? – empross

+0

申し訳ありません私はあなたを取得しません:より詳細に説明してください – user3598756

+0

申し訳ありません - 私はこれであまり良くはありません!元のマクロはデータのリストで実行されます。各行のデータの間に 'x'個の空行を挿入します。挿入された行は空ではなくコピーである必要があります。基本的には、上記の答えが働きますが、データの最初の行をとり、下に「x」のコピーを作成します。次のユニークな行( 'x + 1' ?!)に移動し、この行のx個のコピーを挿入する必要があります。次に、空白の行に達するまで次のようにします。 – empross

関連する問題