使用 Range 对象的 Insert 方法可以在指定行之前插入多个空行。
循环插入法
以下示例在第 2 行之前插入 1 个空行,循环3次,所以一共插入 3 个空行:
Sub InsertMultipleRows1()
Dim i As Integer
For i = 1 To 3
Rows(2).Insert
Next i
End Sub
引用多行插入法
由于在工作表中插入行的数量,与当前所选择的单元格区域的行数一致,所以通过引用多行区域的方法可以实现一次插入多行。
以下示例在第 2 行之前一次插入 3 个空行:
Sub InsertMultipleRows2()
Dim ws As Worksheet
Set ws = Sheets("Sheet1") '将工作表指定为 Sheet1
Dim startRow As Long
startRow = 2 '插入行的起始行号
Dim numRows As Long
numRows = 3 '要插入的行数
ws.Rows(startRow & ":" & startRow + numRows - 1).Insert '插入多行
End Sub
以下示例在第 2 行之前一次插入 3 个空行:
Sub InsertMultipleRows3()
' EntireRow 属性返回单元格 A2 所在的整行单元格对象,
' 即工作表中的第 2 行,然后使用 Resize 属性调整行数后插入3个空行。
Range("A2").EntireRow.Resize(3).Insert
End Sub
以下示例在第 2 行之前一次插入 3 个空行:
Sub InsertMultipleRows4()
Rows(2).Resize(3).Insert
End Sub
隔行插入一行
以下示例从第 2 行开始,隔行插入一行,一共插入5行:
Sub InsertRows()
Dim ws As Worksheet
Set ws = Sheets("Sheet1") ' 将工作表指定为 Sheet1
Dim startRow As Long
startRow = 2 ' 插入行的起始行号
Dim numRows As Long
numRows = 5 ' 要插入的行数
Dim i As Long
For i = 0 To numRows - 1
ws.Rows(startRow + 2 * i).Insert ' 隔行插入一行
' 在插入的行中填写示例数据
ws.Cells(startRow + 2 * i, 1).Value = "Demo"
Next i
End Sub
控制插入单元格区域的格式
在工作表中插入单元格区域时,在默认情况下,其格式与其左侧单元格或上方单元格的格式相同。
以下示例在行 2 上方插入一行,复制第 1 行即标题行的格式。
Range("2:2").Insert
如果需要插入的行的格式与右侧单元格或下方单元格的格式相同,则需要调整 CopyOrigin 参数,即:CopyOrigin:=xlFormatFromRightOrBelow
。
以下示例在行 2 上方插入一行,复制第 3 行而不是标题行的格式。
Range("2:2").Insert CopyOrigin:=xlFormatFromRightOrBelow