Excel·VBA合并工作簿2
- 其他合并工作簿的方法,见之前的文章《Excel·VBA合并工作簿》
目录
- 8,合并文件夹下所有工作簿中所有工作表,按表头汇总
- 举例
8,合并文件夹下所有工作簿中所有工作表,按表头汇总
与之前的文章《Excel·VBA合并工作簿(3,合并文件夹下所有工作簿中所有工作表)》类似,但是按照表头名称,将表格数据汇总至合并表格,表头名称相同的在同一列
Sub 合并文件夹下所有工作簿中所有工作表_按表头汇总()'文件夹下所有工作簿wb所有工作表ws合并保存至新建工作表(但不含子文件夹),并按表头汇总数据,默认只有1行表头Dim dict As Object, fso As Object, write_ws As Worksheet, wb As Workbook, sht As WorksheetDim write_row&, write_col&, sht_row&, file_path$, file_name$, old_name As Boolean, arr, i&, k
'--------------------参数填写:file_path,待合并工作簿所在的文件夹;old_namefile_path = "E:\测试\拆分表\合并工作簿8\"old_name = True '写入原工作簿、工作表名称,是/否file_name = Dir(file_path & "*.xlsx")Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行Application.DisplayAlerts = False '不显示警告信息Set dict = CreateObject("scripting.dictionary"): tm = TimerSet fso = CreateObject("Scripting.FileSystemObject")Do While file_name <> ""Set wb = Workbooks.Open(file_path & file_name)For Each sht In wb.WorksheetsIf WorksheetFunction.CountA(sht.UsedRange.Cells) <> 0 Then '非空工作表If write_ws Is Nothing Thensht.Copy: Set write_ws = ActiveSheet '整体复制工作表write_ws.Name = "合并表": write_ws.Columns("a:b").Insert '插入列write_ws.[a1].Resize(1, 2) = Array("原工作簿名称", "原工作表名称")write_row = write_ws.UsedRange.Rows.Countwrite_ws.[a2].Resize(write_row - 1, 2) = Array(fso.GetBaseName(file_name), sht.Name)write_col = write_ws.UsedRange.Columns.Count: arr = write_ws.[a1].CurrentRegionFor i = 1 To UBound(arr, 2)dict(arr(1, i)) = i '记录表头名称及列号NextElsewrite_row = write_ws.UsedRange.Rows.Count + 1sht_row = sht.UsedRange.Rows.Count: arr = sht.[a1].CurrentRegionFor i = 1 To UBound(arr, 2)k = arr(1, i)If Not dict.Exists(k) Then '表头不存在,更新至列号+1,复制表头write_col = write_col + 1: dict(k) = write_colsht.Cells(1, i).Copy write_ws.Cells(1, write_col)End Ifsht.Cells(2, i).Resize(sht_row - 1, 1).Copy write_ws.Cells(write_row, dict(k))Nextwrite_ws.Cells(write_row, "a").Resize(sht_row - 1, 2) = Array(fso.GetBaseName(file_name), sht.Name)End IfEnd IfNextwb.Close (False) '关闭工作簿file_name = Dir '下一个文件名Loop'保存文件If Not old_name Then write_ws.Columns("a:b").Delete '无需写入原工作簿、工作表名称write_ws.Parent.SaveAs filename:=file_path & "合并表.xlsx"write_ws.Parent.Close (False)Application.ScreenUpdating = True: Application.DisplayAlerts = TrueDebug.Print "文件夹合并完成,用时:" & Format(Timer - tm, "0.00")
End Sub
举例
- 共5个工作簿13个工作表,并且改变了C、D列的顺序



- 合并结果

相关文章:
Excel·VBA合并工作簿2
其他合并工作簿的方法,见之前的文章《ExcelVBA合并工作簿》 目录 8,合并文件夹下所有工作簿中所有工作表,按表头汇总举例 8,合并文件夹下所有工作簿中所有工作表,按表头汇总 与之前的文章《ExcelVBA合并工作簿&#x…...
linux内核原理--分页,页表,内核线性地址空间,伙伴系统,内核不连续页框分配,内核态小块内存分配器
1.分页,页表 linux启动阶段,最初运行于实模式,此阶段利用段寄存器,段内偏移,计算得到物理地址直接访问物理内存。 内核启动后期会切换到保护模式,此阶段会开启分页机制。一旦开启分页机制后,内…...
【MongoDB】下载安装、指令操作
目录 1.下载安装 2.指令 2.1.基础操作指令 2.2.增加 2.3.查询 2.4.修改 2.5.删除 前言: 关于MongoDB的核心概念请移步: 【文档数据库】ES和MongoDB的对比-CSDN博客 1.下载安装 本文以安装Windows版本的mongodb为例,Linux版本的其实…...
k8s-pvc/pv扩容记录
背景 一次聊天过程中,对方提及pvc的扩容,虽然有注意过 storageclass 有个AllowVolumeExpansion的配置(有些csi插件是不支持该配置的,比如local-volume-provisoner),但是没有实际用过,所以还是心…...
关于Unity插件TriLib使用的一点儿心得
最近做一个项目的时候,由于要求动态加载fbx或者glb等格式文件,而我们自己开发加载插件难度又有点大,所以最后使用了TriLib这个插件,现在说一点使用心得。 由于文件加载之后要对加载的内容进行复制,比如加载一个柱子&am…...
计算机二级Python基本排序题-序号45(补充)
1. 文件"singup.txt”中保存了若干条参加运动会学生的报名记录,每条记录的形式为“班级号_学号”,例如"A1_12”,将每个班级报名情按参加运动会人数从多到少排列(假设不存在人数相同的情况)并输出,…...
响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-6 fieldset
代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>fieldset</title> </head><body> <form action"#"><fieldset><legend>学生信息</legend>姓名:&…...
html渲染优先级
在前端开发中,优先布局是指在设计和构建页面时,将页面的各个部分按照其重要性和优先级进行排序,并依次进行布局和开发。这种方法可以帮助开发团队在项目初期就确定页面结构的核心部分,从而更好地掌控项目的整体进度和优先级。且确…...
linux 更新镜像源
打开终端,备份一下旧的 源 文件,以防万一 cd /etc/apt/ ls sudo cp sources.list sources.list.bak ls然后打开清华大学开源软件镜像站 搜索一下你的linux发行版本,我这里是ubuntu发行版本 点击这个上面图中的问号 查看一下自己的版本号&a…...
【征服Redis12】redis的主从复制问题
从现在开始,我们来讨论redis集群的问题,在前面我们介绍了RDB和AOF两种同步机制,那你是否考虑过这两个机制有什么用呢?其中的一个重要作用就是为了集群同步设计的。 Redis是一个高性能的键值存储系统,广泛应用于Web应用…...
php函数 一
一 自动加载 1.1 __autoload(string $class) 类自动加载,7.2版本之后废弃。可使用sql_autoload_register()注册方法实现。 类自动加载,无返回值。 #php7.2之前function __autoload($class) {if(strpos($class, CI_) ! 0){if (file_exists(APPPATH . …...
监督学习 - 梯度提升回归(Gradient Boosting Regression)
什么是机器学习 梯度提升回归(Gradient Boosting Regression)是一种集成学习方法,用于解决回归问题。它通过迭代地训练一系列弱学习器(通常是决策树)来逐步提升模型的性能。梯度提升回归的基本思想是通过拟合前一轮模…...
【工具】使用ssh进行socket5代理
文章目录 shellssh命令详解正向代理:反向代理:本地 socks5 代理 shell ssh -D 3333 root192.168.0.11 #输入密码 #3333端口已经使用远程机进行转发设置Windows全局代理转发 socks127.0.0.1 3333如果远程机为公网ip,可通过搜索引擎查询出网…...
(delphi11最新学习资料) Object Pascal 学习笔记---第2章第六节(类型转换)
Object Pascal 学习笔记,Delphi 11 编程语言的完整介绍 作者: Marco Cantu 笔记:豆豆爸 2.6 类型转换和类型转换 正如我们所见,不能将一种数据类型的变量赋值给另一种类型的变量。原因在于,根据数据的实际表示,你…...
计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒解密数据恢复
企业的计算机服务器存储着企业重要的信息数据,为企业的生产运营提供了极大便利,但网络安全威胁随着技术的不断发展也在不断增加,近期,云天数据恢复中心接到许多企业的求助,企业的计算机服务器中了mallox勒索病毒&#…...
CPU相关专业名词介绍
CPU相关专业名词 1、CPU 中央处理器CPU(Central Processing Unit)是计算机的运算和控制核心,可以理解为PC及服务器的大脑CPU与内部存储器和输入/输出设备合称为电子计算机三大核心部件CPU的本质是一块超大规模的集成电路,主要功…...
VRRP协议负载分担
VRRP流量负载分担 VRRP负载分担与VRRP主备备份的基本原理和报文协商过程都是相同的。同样对于每一个VRRP备份组,都包含一个Master设备和若干Backup设备。与主备备份方式不同点在于:负载分担方式需要建立多个VRRP备份组,各备份组的Master设备可以不同;同一台VRRP设备可以加…...
maven 基本知识/1.17
maven ●maven是一个基于项目对象模型(pom)的项目管理工具,帮助管理人员自动化构建、测试和部署项目 ●pom是一个xml文件,包含项目的元数据,如项目的坐标(GroupId,artifactId,version )、项目的依赖关系、构建过程 ●生命周期&…...
【Java】HttpServlet类简单方法和请求显示
1、HttpServlet类简介🍀 Servlet类中常见的三个类有:☑️HttpServlet类,☑️HttpServletRequest类,☑️HttpResponse类 🐬其中,HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对…...
使用Rancher管理Kubernetes集群
部署前规划 整个部署包括2个部分,一是管理集群部署,二是k8s集群部署。管理集群功能主要提供web界面方式管理k8s集群。正常情况,管理集群3个节点即可,k8s集群至少3个。本文以3节点管理集群,3节点k8s集群为例 说明部署过…...
一封好JD,唤醒应届生的投递欲
你的实习岗位描述为何石沉大海? 在校招实习生招募的初期,JD(职位描述)就是企业的门面。然而,很多HR直接套用社招模版,导致文案枯燥乏味,完全无法触动应届生的痛点。在信息爆炸的春招季…...
蓝桥杯省赛真题解析:用动态规划搞定‘积木画’问题(附Python/Java/C++三种代码)
蓝桥杯竞赛实战:动态规划解积木画问题的多语言实现 第一次参加蓝桥杯的选手往往会被"积木画"这类动态规划题目难住——看似简单的图形拼接背后隐藏着精妙的状态转移逻辑。这道题考察的不仅是编码能力,更是对问题抽象和数学建模的深刻理解。本文…...
别再死记硬背了!用Python脚本模拟UDS 28服务,5分钟搞懂通信控制
用Python实战模拟UDS 28服务:5分钟掌握CAN总线通信控制 在汽车电子开发与测试中,UDS诊断协议的理解往往停留在理论层面,而实际动手操作才是掌握精髓的关键。28服务作为ISO14229-1标准中的通信控制核心,直接影响ECU的报文收发行为。…...
终极音乐格式转换指南:3步完成音频解密与跨平台播放
终极音乐格式转换指南:3步完成音频解密与跨平台播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https:/…...
FF14副本动画跳过插件终极指南:3分钟告别冗长等待
FF14副本动画跳过插件终极指南:3分钟告别冗长等待 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 你是否曾在《最终幻想14》国服副本中,看着那些无法跳过的动画感到无比焦虑&…...
长期项目使用Taotoken聚合API在稳定性与成本上的综合感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期项目使用Taotoken聚合API在稳定性与成本上的综合感受 在最近一个持续数月的实际开发项目中,我们选择将Taotoken作为…...
音频解密工具终极指南:浏览器端高效解锁加密音乐文件完整解决方案
音频解密工具终极指南:浏览器端高效解锁加密音乐文件完整解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目…...
如何用5分钟将B站视频变成文字稿:bili2text终极指南
如何用5分钟将B站视频变成文字稿:bili2text终极指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经为了整理B站视频笔记而反复暂停、回…...
告别树莓派5?手把手教你用OrangePi 5搭建家庭媒体中心(基于RK3588)
告别树莓派5?手把手教你用OrangePi 5搭建家庭媒体中心(基于RK3588) 在智能家居日益普及的今天,家庭媒体中心已成为许多科技爱好者的必备设备。传统的解决方案往往依赖于昂贵的商业NAS或性能有限的树莓派,而基于RK3588芯…...
从零到一:vue-print-nb插件在Vue项目中的实战打印方案
1. 为什么选择vue-print-nb插件 在Vue项目中实现打印功能,开发者通常会面临多种选择。传统的window.print()方法虽然简单,但存在明显的局限性:无法精确控制打印区域、难以自定义打印样式、对移动端支持不佳等。这时候,一个专门为V…...
