复制&粘贴变量行

时间:2016-10-11 10:58:54

标签: excel vba

我有一个在现有数据行之间插入多行的宏:

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 个答案:

答案 0 :(得分: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

我使用Application.InputBox()方法而不是VBA InputBox()方法,因为前者允许您强制用户输入数据类型(在示例中类型:= 1强制数字输入)