实用VBA:2.隔行插入空白行

本文介绍了如何使用VBA在Excel中插入隔行空白行,包括基本思路、两种实现方法(按行逐次插入和根据辅助列插入数量),以及无代码的快速排序方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中有时会需要将一个表格的行与行之间各插入一个空白行,即由每行一条数据改为隔一行一条数据(或每条数据占2行);或根据需要在每行数据后插入数量不等待空白行,以供后续处理填入数据使用。实现方法有很多,此处为了练习VBA,分享一种使用VBA实现的方法和一种快速实现的操作技巧。

1.需求范例

公司过年发年货,要制作领取签字表,每个人领取后在自己名字下方签字。将下表每行后添加一个空白行。

2.基本思路

设置一个按行循环的变量,从最后一行开始,向上循环,每到一行即向当前行后插入一个空白行。由于执行插入操作时,总行数会增加,循环应从后向前,不影响待操作的行。

3.VBA实现

Option Explicit

Sub 隔行插入空白行()
    Dim wb As Workbook                  '工作簿变量
    Dim ws As Worksheet                 '工作表变量
    Dim iRow As Integer                 '原表最大行数
    Dim i As Integer                    '循环变量
    Set wb = Workbooks(1)               '设置当前工作簿
    Set ws = Worksheets("Sheet1")       '设置需要操作的工作表
    ws.Activate                         '激活工作表
    iRow = 109                          '设置总行数,由后至前插入空白行
    For i = iRow To 3 Step -1           '表格含标题行,从最后一行向上逐行插入空白行
        Cells(i, 1).EntireRow.Insert
    Next i
    Set ws = Nothing                    '关闭工作表
    Set wb = Nothing                    '关闭工作簿
End Sub

4.运行效果

5.插入数量不等的多个空行的方法

对原表添加辅助列,标注每一行下需要插入空行的数量,定义变量从辅助列取数,根据辅助列数值在当前行下循环插入空行。

代码更新

Sub 隔行插入空白行()
    Dim wb As Workbook                  '工作簿变量
    Dim ws As Worksheet                 '工作表变量
    Dim iRow As Integer                 '原表最大行数
    Dim iNum As Integer                 '辅助列变量
    Dim i As Integer                    '循环变量
    Dim j As Integer                    '循环变量
    Set wb = Workbooks(1)               '设置当前工作簿
    Set ws = Worksheets("Sheet1")       '设置需要操作的工作表
    ws.Activate                         '激活工作表
    iRow = 109                          '设置总行数,由后至前插入空白行
    For i = iRow To 2 Step -1           '表格含标题行
        iNum = Cells(i, 4)              '辅助列“行数”所在单元格
        Cells(i + 1, 1).Select          '选中要操作的单元格
        If Cells(i, 4) = 0 Then        '不需要插入空白行的数据
        Else
            For j = 1 To iNum           '根据辅助列插入指定数量的空白行
                Selection.EntireRow.Insert
            Next j
        End If
    Next i
    Set ws = Nothing                    '关闭工作表
    Set wb = Nothing                    '关闭工作簿
End Sub

运行效果

6.无代码的快速实现方法:排序

1)对原表首列序号进行处理,将表序号全部设置为奇数;

2)在表格后的空行中向下填充同等数量的偶数序号;

3)将表格按序号重新排序,则序号为偶数的空白行被间隔排列在奇数行之间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值