复制选定的行两次

won*_*nog 7 excel vba copy excel-vba

我写了一个非常基本的Excel宏来复制选定的行两次,然后将光标向下移动3行,这样可以再次重复该过程.

所以如果我有一个文件,其中前10行都需要重复两次,我运行宏10次.

这已经为我节省了一堆按键,但我确信它可以写得更好,所以我只需选择前10行,然后运行一次宏.

这是我到目前为止所拥有的:

Sub Copy_Twice()
' Copies current row twice

    ActiveCell.EntireRow.Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    ActiveCell.EntireRow.Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    ActiveCell.Offset(rowOffset:=3).Select

End Sub
Run Code Online (Sandbox Code Playgroud)

对于我运行此宏的每个文件,它可能不是要复制的前10行.

实际上,如果列J中的单元格为空,则更好的宏将是每行复制两次.

更新:文件有一个标题行,其中包含A到X列的值.要复制的行将是标题,其中列J为空白后的第一行x#.因此,在一个示例中,行2-11需要被复制两次.但在另一个文件中,它可能是第2-21行.

Vas*_*zha 2

尝试这个:

Dim n&, x&
n = 0
x = Application.WorksheetFunction.CountIf(Range("J:J"), " ")
Range("A2").Select

While n <> x
    ActiveCell.EntireRow.Copy: ActiveCell.Offset(1, 0).EntireRow.Insert
    ActiveCell.EntireRow.Copy: ActiveCell.Offset(1, 0).EntireRow.Insert
    ActiveCell.Offset(3, 0).Select
    n = n + 1
Wend
Application.CutCopyMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)