在每个currentregion之后插入2个空行

New*_*ner 5 excel vba excel-vba sendkeys

我需要在Excel中的每个当前数据区域后插入2个空行.

从理论上讲,我的代码应该工作并在数据之后插入它,但是在尝试了很多次之后,它会在数据之前插入它之后.

我哪里做错了?有人可以指导我吗?谢谢!

Sub AutoInsert2BlankRows()

Selection.CurrentRegion.Select
SendKeys "^{.}"
SendKeys "^{.}"
SendKeys "~"

ActiveCell.EntireRow.Select
'this chooses the whole row

Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
End Sub
Run Code Online (Sandbox Code Playgroud)

这是我的图片以供进一步澄清.如您所见,有3个不同的电流区域由空行分隔.我需要的是在已经存在的空白行之外插入2个额外的空白行,以便在每个当前区域之间产生3个空行.(如果我之前不够清楚,请道歉.)

在此输入图像描述

这是图像的链接!

0m3*_*m3r 2

这就是你想要做的吗?

第一个例子

Sub AutoInsert2BlankRows()

'   // Set Variables.
    Dim Rng As Range
    Dim i As Long

'   // Target Range.
    Set Rng = Range("A2:A10")

'   // Reverse looping
    For i = Rng.Rows.Count To 2 Step -1

'       // Insert two blank rows.
        Rng.Rows(i).EntireRow.Insert
        Rng.Rows(i).EntireRow.Insert

'   // Increment loop
    Next i


End Sub
Run Code Online (Sandbox Code Playgroud)

编辑

要在每个空白行后添加两个空白行,请尝试以下操作。

第二个例子

Sub AutoInsert2BlankRows()

'   // Set Variables.
    Dim Rng As Range
    Dim i As Long

'   // Target Range.
    Set Rng = Range("A2:A10")

'   // Reverse looping
    For i = Rng.Rows.Count To 2 Step -1

        If Cells(i, 1).Value = 0 Then

'          // Insert two blank rows.
            Rng.Rows(i).EntireRow.Insert
            Rng.Rows(i).EntireRow.Insert

        End If

'   // Increment loop
    Next i


End Sub
Run Code Online (Sandbox Code Playgroud)

第三个例子

Option Explicit
Sub AutoInsert2BlankRows()
'   // Set Variables.
    Dim Rng As Range
    Dim i As Long

'   // Target Range.
    Set Rng = ActiveSheet.UsedRange

'   // Reverse looping
    For i = Rng.Rows.Count To 1 Step -1

'       // If entire row is empty then
        If Application.CountA(Rows(i).EntireRow) = 0 Then

'           // Insert blank row
            Rows(i).Insert
            Rows(i).Insert

        End If

    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)