常用功能加载宏——多个工作簿合并到一个工作簿
时间:2022-07-22
本文章向大家介绍常用功能加载宏——多个工作簿合并到一个工作簿,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于做管理工作的,收集表格这种工作应该会经常有,设计一个表格模板,发给各个有关单位去填写,收集起来后再合并到一起。
如果表格太多,一个一个的手动操作肯定很麻烦,设计一个VBA程序来合并就非常方便了:
首先在customUI.xml中增加代码:
<menu id="rbmenuMergeSplit" label="合并拆分 " size="large" imageMso="ReviewCombineRevisions">
<button id="rbbtnMergeWb" label="合并工作簿" onAction="rbbtnMergeWb" imageMso="FileSaveAsExcelXlsx" />
</menu>
回调函数:
Sub rbbtnMergeWb(control As IRibbonControl)
Call MShtWk.MergeWb
End Sub
函数实现:
Sub MergeWb()
Dim strDir As String
Dim RetDirs() As String, RetFiles() As String
'选择要查找的文件夹
strDir = GetFolderPath()
If VBA.Len(strDir) = 0 Then Exit Sub
'遍历获取文件
If ScanDir(strDir, RetDirs, RetFiles) = -1 Then Exit Sub
'记录活动工作簿
Dim wb As Workbook
Set wb = ActiveWorkbook
'关闭屏幕更新,提高速度
Application.ScreenUpdating = False
Dim i As Long
Dim flag As Boolean
Dim tmp As Workbook
For i = 0 To UBound(RetFiles)
'过滤活动工作簿和打开的临时文件
If RetFiles(i) <> wb.FullName And VBA.InStr(RetFiles(i), "~$") = 0 Then
flag = False
'避免用Or将多个判断连接在一起,因为那样会每一个判断都执行
If VBA.InStr(RetFiles(i), ".xls") Then
flag = True
ElseIf VBA.InStr(RetFiles(i), ".xls") Then
flag = True
ElseIf VBA.InStr(RetFiles(i), ".xlsx") Then
flag = True
ElseIf VBA.InStr(RetFiles(i), ".xlsm") Then
flag = True
End If
If flag Then
Set tmp = Workbooks.Open(RetFiles(i), False)
'复制每一个Sheet数据,这里可以根据自己实际需要来复制
tmp.Worksheets.Copy After:=wb.Worksheets(wb.Worksheets.Count)
tmp.Close False
End If
End If
Next
Application.ScreenUpdating = True
Set wb = Nothing
Erase RetDirs, RetFiles
End Sub
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 域控安全基础.md
- Win平台安全配置.md
- 机房建设标准及专业术语解释
- WAF安全拦截绕过思路和手法
- 网络拓扑图基础入门
- 【网络技术联盟站】centos7.6环境下redis5.0.8集群搭建文档
- WAF原理及其使用说明
- 还在写Bug?GitHub官方代码扫描工具上线,免费查找漏洞
- n1.Docker安装运行所遇异常解决
- n3.Docker之Win10和Server使用实例
- GitHub 再见 Master !
- IT运维面试问题总结-Linux基础
- 6.Docker使用辅助工具汇总
- IT运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理
- IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)