实用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

相关文章

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

matplotlib绘图中插入图片

在使用matplotlib下的pyplot绘图时,有时处于各种原因,需要采用类似贴图的方式,插入外部的图片,例如添加自己的logo,或者其他的图形水印等。 一开始,查找到的资料都是使用imshow,但是这会有带来几个问题,一个是图形的原点发生了变化,另外一个问题就是图形比例也产生了变化,当然最大的问题是图形占据了整个绘图区域,完全喧宾夺主了,与我们设想的只在绘图区域中占据很小的一块不相符。 经

Weibull概率分布纸(EXCEL VBA实现)

在学习Weibull分布理论的时候,希望有一张Weibull概率纸,用来学习图解法。但是在度娘上没有找到的Weibull概率纸的电子版。在书上看到的Weibull概率纸,只能复印下来使用。于是萌生了自己制作Weibull概率纸的想法,帮助自己更好地学习。 本人擅长使用各种计算机语言,C,C++,Matlab,Scilab等等,但是始终钟爱与VBA,认为VBA可以实现一切你想要的东西,由于在企业里不

MongoDB学习—(4)文档的插入,删除与更新

一,文档的插入 插入命令有两个一个为insert,另一个为save,两者的区别为 db.[documentName].insert({..})插入的数据不允许重复,即_id不可相同 db.[docuemntName].save({..})插入的数据允许重复,如果整条数据内容相同,则不发生替换,如果数据有做不同,则将原数据替换 二,删除文档数据 db.[docuementName].r

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

java的Timestamp时间插入mysql的datetime字段是0000-00-00 00:00:00

Mysql 与 java 的时间类型             MySql的时间类型有              Java 中与之对应的时间类型                  date                                               java.sql.Date               Datetime

Hibernate插入数据时,报错:org.springframework.dao.DataIntegrityViolationException: could not insert: [cn.itc

在用junit测试:插入数据时,报一下错误: 错误原因: package junit;import org.junit.Test;import cn.itcast.crm.container.ServiceProvinder;import cn.itcast.crm.dao.ISysUserDao;import cn.itcast.crm.domain.SysRole;

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

ubuntu终端实用指令

ctrl + w 往回删除一个单词,光标放在最末尾 ctrl + u 删除光标以前的字符 ctrl + k 删除光标以后的字符 ctrl + a 移动光标至的字符头 ctrl + e 移动光标至的字符尾 ctrl + shift + c 复制 ctrl + shift + v 粘贴 ctrl + l 清屏

二分插入

思想:对于已排好序的数组,例如升序数组插入一个数字,把数组的上、下界下标做形参,方便递归,每次取中间的数与插入数进行比较,      特别注意当插入数小于中间数这种情况,这种情况下,移动时下标应从中间值那个下标开始移起(就因为这儿我Wrong了好多次) 解题代码: #include <stdio.h> #define N 100000 void Input(int a[