本文主要是介绍实用VBA:2.隔行插入空白行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
工作中有时会需要将一个表格的行与行之间各插入一个空白行,即由每行一条数据改为隔一行一条数据(或每条数据占2行);或根据需要在每行数据后插入数量不等待空白行,以供后续处理填入数据使用。实现方法有很多,此处为了练习VBA,分享一种使用VBA实现的方法和一种快速实现的操作技巧。
1.需求范例
公司过年发年货,要制作领取签字表,每个人领取后在自己名字下方签字。将下表每行后添加一个空白行。
2.基本思路
设置一个按行循环的变量,从最后一行开始,向上循环,每到一行即向当前行后插入一个空白行。由于执行插入操作时,总行数会增加,循环应从后向前,不影响待操作的行。
3.VBA实现
Option ExplicitSub 隔行插入空白行()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.InsertNext iSet 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 '不需要插入空白行的数据ElseFor j = 1 To iNum '根据辅助列插入指定数量的空白行Selection.EntireRow.InsertNext jEnd IfNext iSet ws = Nothing '关闭工作表Set wb = Nothing '关闭工作簿
End Sub
运行效果
6.无代码的快速实现方法:排序
1)对原表首列序号进行处理,将表序号全部设置为奇数;
2)在表格后的空行中向下填充同等数量的偶数序号;
3)将表格按序号重新排序,则序号为偶数的空白行被间隔排列在奇数行之间。
这篇关于实用VBA:2.隔行插入空白行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!