小火箭2.5,VBA常用代码合集

文摘   职场   2025-01-08 10:56   四川  

大家好,这是Excel小火箭的第53次分享,如有不妥之处,欢迎批评指正。
本期文章包含了小火箭2.5所有VBA常用代码,如:自动生成目录、获取文件列表、合并/拆分多个工作表/工作簿、一键破解工作表保护、自动生成Word报表、进度条的显示与控制、批量重命名、批量插入空白行等…
▲ 回复“小火箭“获取源代码
本次新增功能:生成工作表目录、生成文件清单目录、生成文件夹及子文件夹下所有文件目录。您可以:
①点击安装小火箭,会自动集成到Excel工具栏,即可直接使用②也可以双击小火箭aSmallRocket或拖放到任意Excel中打开使用;③又或者大力按下Alt键 +F11查看所有源代码。

▲ Alt+ F11 查看所有源代码

接下来是小火箭的功能和编程思路,总体原则:尽量只读取而不去修改源数据,因为VBA操作不可逆,Ctrl+Z无法回到上一步


01
汇总工作表


模块1:一键汇总多个工作表,适用于一次性汇总多个不同的工作表。


VBA编程思路①新建一个汇总表,(防止破坏源表数据),For each…遍历工作表,复制表粘贴到汇总表,如果是第一个表则整体复制粘贴,否则去掉表头。②注意可通过InputBox交互,获取表头行数的信息。

点我查阅源文章


02
拆分工作表


模块2:一键拆分工作表,适用于按指定列的值拆分成多个工作表
VBA编程思路:①复制整个工作表(防止破坏源数据),通过InputBox获取想要拆分的任意关键列;
②将关键列存入数组,遍历写入字典获取唯一值,新建工作表;
③将所有数据存入数组,按关键字读取到新数组,转置到新工作表;

④注意事项,Excel同一工作薄最多允许存在255个工作表,读取关键字时可以判断超过则提示溢出。

点我查阅源文章


03
汇总工作簿


模块3:适用于一键汇总多个不同的工作簿,不知道工作薄和工作表区别的小伙伴看这里:《工作表与工作簿的区别


VBA编程思路:①新建汇总工作表,通过GetOpenFilename获取文件(工作簿)列表,存放到数组,遍历数组,通过GetObject后台打开表格,复制粘贴到汇总表,关闭工作表…②有时候表格数据多读取较慢,为提高用户体验,可在状态栏显示当前进度。

点我查阅源文章


04
拆分工作簿

模块4:适用于按照指定列的不同字段拆分成独立的工作表。


VBA编程思路:参见模块2拆分工作表,此处只需直接调用采用Worksheet.Copy 方法 ,将工作表复制到工作簿的另一位置。①读取当前工作簿中工作表名备用;②新建文件夹用于存储拆分后的工作簿;③遍历整个工作簿,将新增的工作表通过.copy的方法逐个另存为;④通过Shell 自动打开临时文件夹。
点我查阅源文章


05
批量重命名


模块5:文件批量重命名,适用于任意格式文件的批量重命名


VBA编程思路:①新建临时表,通过GetOpenFilename获取文件列表,并提取文件名到临时表……②输入修改后的文件名,再次点击批量命名完成……③注意事项:Name As会直接重命名并替换原文件,操作前可通过CopyFile备份文件。

当然你也可以通过一行代码搞定,试试看这里:《一行代码可以干什么?

点我查阅源文章


06
批量生成报表


模块6:批量生成Word报表,适用于固定模板的Word报表生成,如日周月报..

VBA编程思路:根据自身需求建立word模版文件,遍历工作表内容按需提取,通过Documents.Open只方式获取word模版中书签定位关键字段,复制表格所需内容到word模版文件即可。

点我查阅源文章

07
进度显示与控制


模块7:程序执行进度的显示和控制,适用于直观判断程序是否正在执行及执行进度。

VBA编程思路:试想一下,你点击运行程序后,除了等待并不知道程序是否正在执行或者被卡死(如进入了VBA死循环),这种体验太糟糕了…… 还好我们可以控制程序显示进度,窗体或状态栏都可以,见上方示例……

点我查阅源文章


08
解除工作表保护


模块8:一键解除工作表保护。

有时候,我们打开工作表发现只有部分单元格可以编辑,点击其他单元格都显示“您试图更改的单元格或图标受保护”,无法正常编辑或下拉填充,也没有办法快捷筛选。

除了一键解除保护外,我们也可以通过修改xml内容去除工作表的保护,具体操作见:解除受保护的Excel工作表密码

09
获取文件列表

模块9:适用于批量获取文件夹及其子文件夹下所有文件列表。

VBA编程思路:通过 FileDialog遍历文件及子文件下所有文件,例如:A文件夹下包含B文件夹和文件清单,B文件夹下包含C文件夹及文件清单...利用VBA编程获取对应属性值,比如件的小,修改日期等。

点我查阅源文章


10
生成目录


模块10:适用于一键生成所有工作表目录、或生成文件夹下文件目录、文件夹及子文件下所有文件清单目录


编程思路:①遍历获取工作表名;②通过Hyperlinks.Add 方法添加超链接;③遍历文件夹及子文件夹获取文件名,添加超链接。

点我查阅源文章


源码获取方式
方式①:点击查阅源文章,从公众号历史原文章中直接复制粘贴使用;
方式②:小火箭2.5已同步上传,回复关键字“VBA”获取源文件,欢迎下载使用。


推荐阅读

分享几个VBA编程好习惯

VBA实例:字典的详解与应用


-END-

客官都看到这儿了
记得点赞加关注哦
下次更新时间,周日21:35

Excel小火箭
一个专注于Excel技巧分享的公众号