VBA小工具:EXCEL如何批量给每行下面插入n个空行?

news2024/11/23 11:49:52

目录

1EXCEL本身的方法

2 VBA实现1:

2.1 粗糙代码

2.2 需要注意的问题

3 VBA实现2:

3.1 改进代码:根据用户自己先选中的区域,进行插入空行操作。

3.1.1 用户可在EXCEL里选中区域,而不是改VBA代码

3.1.2  自动识别用户选择区域的行数范围

4 神奇的部分:用文心一言问了下给了我一个代码,是有问题的,但是可以拿来参考

4.1 文心一言给我的代码


1EXCEL本身的方法

  • 给每行加1个序号,也就是新增一个辅助列:序号列,比如1,2,3,
  • 然后把要插入空行的区域,再其接着的下面行复制粘贴n份,你要插入多少个空行,就再复制n-1份
  • 然后对辅助列:序号列排序
  • 按照 升序排列即可
  • 数据是否包含标题,自己酌情看,最多只有原始数据上有表头/或没表头,不能有多份表头

 

2 VBA实现1:

2.1 粗糙代码

  • 需要手动写死 行数范围的上限和下限

2.2 需要注意的问题

(1)

  • 写循环时,需要注意一定要从下面往上面插入,否则区域往下循环时会被插入列打乱

(2)

  • Cells(i + 1, 2).Insert 会导致不会整行下移,而只是这个单元格下移,根据需要改写
  • ThisWorkbook.ActiveSheet.Cells(i + 1, 2).Insert shift:=xlDown   ' 单元格下移
  • ThisWorkbook.ActiveSheet.Rows(i + 1).Insert Shift:=xlDown      ' 整行下移

(3)

  • 内外层循环
  • 内层循环,根据调用函数的参数得知要循环插入的行数 times
  • 外层循环,本身的行数,也就是要执行的次数

(4)

  • 从下面开始插入新行,那么最后1行如果下面没内容,就可以从 maxr1 - 1 行开始插入即可
  • 插入行的时候要注意,EXCEL插入insert操作是再当前行的上面插入一行,所以实际执行时,需要使用 i+1 而不是 i .

Sub testcopy2()
    Call testcopy1(3)
End Sub


Function testcopy1(times)
   
   ' 写死要插入行的范围
   minr1 = 1
   maxr1 = 7

  '一定要从下面往上面插入,否则区域往下循环时会被插入列打乱
   For i = maxr1 - 1 To minr1 Step -1
       For j = 1 To times
'           Cells(i + 1, 2).Insert 会导致不会整行下移,而只是这个单元格下移,根据需要改写
'           ThisWorkbook.ActiveSheet.Cells(i + 1, 2).Insert shift:=xlDown
           ThisWorkbook.ActiveSheet.Rows(i + 1).Insert Shift:=xlDown
       Next j
   Next i

End Function

3 VBA实现2:

3.1 改进代码:根据用户自己先选中的区域,进行插入空行操作。

3.1.1 用户可在EXCEL里选中区域,而不是改VBA代码

  • 需要,用户先选中一个指定区域,比如 下图这样
  • 让用户在EXCEL操作选中,比VBA里改参数还是友好的多

 

3.1.2  自动识别用户选择区域的行数范围

  • 首先,无论是selection 还是 range 其 address属性,就包含了行列信息,有的应该还可以拆解为RIC1格式
  • '需要处理Address "$B$1:$C$6" 取出 row的范围,minr-maxr
  • '再从 "$B$1" 取到行数row

  '需要处理Address "$B$1:$C$6" 取出 row的范围,minr-maxr
  SA2 = Split(Selection.Address, ":")
  For i = LBound(SA2) To UBound(SA2)
        minr1 = SA2(0)
        maxr1 = SA2(1)
  Next
 

  '再从 "$B$1" 取到行数row
  minr1 = Right(SA2(0), Len(SA2(0)) - Application.Find("$", SA2(0), 2))
  maxr1 = Right(SA2(1), Len(SA2(1)) - Application.Find("$", SA2(1), 2))
  

Sub testcopy2()
    Call testcopy1(5)
End Sub


Function testcopy1(times)
  '需要用户先在EXCEL手动选择一个区域Selection
  
  '需要处理Address "$B$1:$C$6" 取出 row的范围,minr-maxr
  SA2 = Split(Selection.Address, ":")
  For i = LBound(SA2) To UBound(SA2)
        minr1 = SA2(0)
        maxr1 = SA2(1)
  Next
 
  minr1 = Right(SA2(0), Len(SA2(0)) - Application.Find("$", SA2(0), 2))
  maxr1 = Right(SA2(1), Len(SA2(1)) - Application.Find("$", SA2(1), 2))
  

   For i = maxr1 - 1 To minr1 Step -1
       For j = 1 To times - 1
           ThisWorkbook.ActiveSheet.Rows(i + 1).Insert Shift:=xlDown
       Next j
   Next i

End Function

4 神奇的部分:用文心一言问了下给了我一个代码,是有问题的,但是可以拿来参考

4.1 文心一言给我的代码

  • 执行效果是错的
  • 问题1: 插入行没有倒着处理,所以代码执行会有问题
  • 问题2: 内外层循环写的有问题

 

Sub InsertBlankRows1()
    Dim selectedRange As Range
    Dim numRows As Integer
    Dim i As Integer
      
    '获取选中区域
    Set selectedRange = Selection
      
    '获取要插入的空行数
    numRows = 3 '这里的数字3表示要插入3个空行
      
    '循环插入空行
    For i = 1 To numRows
        '在每行的下面插入一个空行
        For j = 1 To selectedRange.Rows.Count
            selectedRange.Rows(j).Offset(1).EntireRow.Insert Shift:=xlDown
        Next j
    Next i
      
End Sub

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web学习--登录认证--会话技术--cookie--session--令牌--java-jwt使用--jjwt使用

前置学习: httpspringmvc 文章目录 会话技术cookie设置cookie获取cookiecookieAPI优缺点cookie的删除 session设置session删除session的某个值获取sesssion优缺点 令牌JWTJWT介绍JWT的使用java-jwtjjwt手动解析 会话技术 会话:用户打开浏览器,访问web服…

Error:invalid character in indentifier

Error:invalid character in indentifier 解决方案: 一般是中英文写错了

【电影推荐系统】实时推荐

目录 原因 由于实时性,所以算法设计需要满足一下两点 算法设计 算法实现 算法公式 完整代码 原因 用户对电影的偏好随着时间的推移总是会发生变化的。此时离线系统无法解决,需要实时推荐。 由于实时性,所以算法设计需要满足一下两点 …

GIS杂记(二):Arcgis对采样点进行裁剪,获取指定区域内的采样点

有时候需要对栅格数据进行采样处理,如果采样点过多则会使得采样时间过长,今天在进行数据采样时,使用了1km*1km的渔网建立的采样点,大概有1百万个点,程序运行时间大概4个小时,但是其中有绝大部分数据都是空值…

微信小程序使用animation.css

animation.css是一款纯css动画库,其中提供了丰富的动画效果 我们直接下载animation.css,即可使用其中的样式 其官网为:Animate.css | A cross-browser library of CSS animations. 1.下载 使用npm下载animation.css: npm inst…

LVS简介及LVS-NAT负载均衡群集的搭建

目录 一、LVS群集简介 1.群集的含义和应用场景 2.性能扩展方式 3.群集的分类 负载均衡(LB) 高可用(HA) 高性能运算(HPC) 二、LVS负载均衡群集简介及搭建 1.负载均衡群集架构 2.三种工作模式 3.启…

基于servlet的简单登录界面

前端登录发起请求 1.安装axios axios 是一个 HTTP 的网络请求库 安装 npm install axios (脚手架中) 在 main.js 中配置 axios //导入网络请求库 import axios from axios; //设置访问后台服务器地址:ip,端口和项目名字&#xff0…

基于Python Django实现KNN协同电影推荐系统

系统说明 基于Python Django实现KNN协同电影推荐系统,有用户端和管理后端,完整可在任何环境运行。 KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量…

使用前端JS上传文件到阿里云的OSS服务器,PHP生成STS临时访问凭证

官方教程地址:https://help.aliyun.com/document_detail/383950.html?spma2c4g.383952.0.0 这篇文章主要是指出官方教程没有说明的地方 后端代码 并非是完全完全不需要后端的参与。需要后端生成凭证,防止秘钥泄露 这里是官方的说明文档:使…

obj文件解析及用meshlab查看

举例 它以txt打开后如下所示 v -0.3 0 0.3 v 0.4 0 0 v -0.2 0.3 -0.1 v 0 0.4 0 # 4 verticesg head s 1 f 1/1/1 2/1/1 4/1/1 f 1/1/1 2/1/1 3/1/1 f 2/1/1 4/1/1 3/1/1 f 1/1/1 4/1/1 3/1/1一般而言obj文件以txt格式打开后包含如下片段 v -0.3 0 0.3 vt 0.625 0.458 0.00…

FPGA纯verilog实现UDP协议栈,GMII接口驱动88E1111,提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案网络PHYGMII AXIS接口模块AXIS FIFOUDP协议栈 5、vivado工程1-->B50610 工程6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利:工程代码的获取 1、前言 目前网上的fpga实现ud…

密码学学习笔记(七):Modular arithmetic - 模算数

简介 模算术是整数的一种算术结构,其中数字在达到特定值时“环绕”。模运算使我们能够简单地生成群、环和域,这是大多数现代公钥密码系统的基本构造部分。其中数字超过一定值后(称为模)后会“卷回”到较小的数值。 模算数常见的…

5.2ORB-SLAM3之回环矫正

1.简介 在上一章《回环检测之检测是否存共视区域》已经介绍了检测共视区域的部分,接下来就是对共视区域进行回环矫正或者地图融合。 回环矫正和之前的ORBSLAM系列一致,就是消除因为长时间运动产生的位姿累计误差和尺度漂移。在ORBSLAM3中新增了多地图系…

idea集成maven-mvnd

maven-mvnd是什么? 参考文档: Maven加强版 — mvnd的使用测试 - 知乎 1.下载mvnd安装包 Releases apache/maven-mvnd GitHub 2.修改配置文件:安装包中的conf目录下的mvnd.properties文件 配置maven settings的地址: 注意&am…

MySQL配置主从备份

文章目录 1.什么是主从备份2. 原理3.配置主服务器4.配置从服务器4.1进入数据库,准备建立连接4.2开启 slave 连接,主备机连接成功,数据开始同步4.3查看有关从属服务器线程的关键参数的信息 1.什么是主从备份 主从复制简单来说就是主库把增删改…

环境搭载vscode

Windows 10 下 VS Code 配置 C 开发环境(MinGW) 读书读傻了哟 配置 C/C 环境   主要是配置launch.json、tasks.json这两个文件(当然,还有别的.json文件,可有可无)。这两个文件位于.vscode文件夹下&#…

mysql--第一天基础操作

1.创建数据库 2.查询创建数据的语句 3.使用数据库,查询当前默认的数据库以及使用的编码方式校验规则 4.删除数据库 5.在一张表中定义多个字段,要使用今天提到的所有的数据类型(数字,文本,日期) 查看表结构

产品方案设计高效的4大注意事项

做产品方案时,我们容易遭遇:未澄清需求、未梳理业务方案、缺少思考过程以及缺少对比方案等误区,往往会造成产品方案并不能完全解决用户问题,项目后期容易遇到需求变更等风险。 因此如何如何高效设计产品方案?就显得尤为…

SpringCloud入门实战(十二)-Sleuth+Zipkin分布式请求链路跟踪详解

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术…

Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录

目录 01-配置数据库信息02-安装Python的MySQL数据库驱动程序 mysqlclient03-安装Mysql,并启动Mysql04-定义Django的数据库模型(定义数据表-编写models.py文件)05-按照数据的配置生成数据库(执行迁移命令)05-01-生成迁移执行文件05-02-执行数据库模型迁移 06-查看数据…