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

2023-10-11 13:10

本文主要是介绍实用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.隔行插入空白行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188261

相关文章

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

9个SpringBoot中的自带实用过滤器使用详解

《9个SpringBoot中的自带实用过滤器使用详解》在SpringBoot应用中,过滤器(Filter)是处理HTTP请求和响应的重要组件,SpringBoot自带了许多实用的过滤器,如字符编码,跨... 目录1. CharacterEncodingFilter - 字符编码过滤器功能和配置手动配置示例2