[Office] WPS Excel通过添加宏实现多张表格合并

2023-11-10

在我们使用Excel时,通常会遇到让各个地区、各个学院或下属单位收集数据的情况,有时还会每月、每周,甚至是每日调度数据,而当我们得到了这些Excel文件表格之后,很多同志会进行人工手动汇总,这大大降低了办公的效率。本文主要介绍WPS Excel宏,讲述两种自动汇总表格数据的方法,通过VB代码实现。



一、合并当前文件夹下所有文件表格


假设存在如下贵州省九个市州的数据,如下图所示:


打开每个表格的格式都一样,安顺市显示如下图所示。注意,如果是向下属单位收集数据,通常需要固定好格式,方便汇总生成透视图形,形成最终的报告。



第一步 创建一个新的xls文件,比如“汇总.xls”。

第二步 在“开发工具”中选择“VB编辑器”,如下图所示。



第三步 在弹出的Microsoft Visual Basic界面中,选择“Project”中的“Sheet1”。




输入如下代码并点击运行按钮。

Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub

第四步 汇总数据如下图所示,同时汇总完成之时会提示对话框。



同时删除多余的表头,然后简单修订如下图所示:


最终输出表格如下所示:





注意,在汇总过程中如果出现最后一行为备注事宜,建议删除只保留统计的数据;同时如果其他Sheet有数值,建议也删除,否则它也会被复制至汇总表。


第五步 选中所有数据,然后在“数据”栏中点击“数据透视表”。



第六步 选择的字段进行透视汇总,比如统计各市州所包含的县市区。




同时,可以汇总各式各样的数据,如下图所示:




二、合并当前文件各个子Sheet数据


下面讲解第二种方法,对当前Excel文件中的各个Sheet进行汇总,步骤和上述方法一样,重要的是这段VB宏代码。假设存在黔东南州、安顺市、毕节市,如下图所示:


代码如下:

Sub 合并当前工作簿下的所有市级分表工作表()
Application.ScreenUpdating = False
For j = 4 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name
Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部市级分表工作表已经合并完毕!", vbInformation, "提示"
End Sub


最后希望文章对您有所帮助,如果存在不足之处,请海涵~
(By:Eastmount 2017-03-06 下午3点  http://blog.csdn.net/eastmount/ )



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Office] WPS Excel通过添加宏实现多张表格合并 的相关文章

  • Windows().Activate 超出范围错误

    我的宏中有一些代码如下 ChDir File pth Workbooks Open filename File pth open tkt Workbooks Open filename File pth closed tkt ActiveS
  • 将 Excel 行输出到一系列文本文件

    在 Excel 中 我在 A 列中有一个文章名称列表 在 B 列中有一个免责声明 现在 对于 A 列中的每篇文章 我想创建一个文本文件 A 是文件的标题 B 是文件的标题 免责声明是文件的内容 这可能吗 我的想法是 我有数百个这样的东西 我
  • cells().paste VS cells.pastespecial?

    下面的代码是如何工作的 Range D4 F4 copy cells 1 1 PasteSpecial 虽然下面不起作用 Range D4 F4 copy cells 1 1 Paste 我意识到正确的语法是 Range D4 F4 cop
  • 为什么 VBA 中的 GetValue 函数使用单元格“A1”?

    我正在使用此函数从关闭的工作簿中检索值 在此代码的第 8 行中 我不明白为什么使用 A1 整个第 8 行到底发生了什么 我也对 xlR1C1 的论点感到困惑 Private Function GetValue path file sheet
  • 使用 Excel 连接函数

    我正在尝试将 Excel 中三列的数据合并到一列中 例如 我想将 Product Location 和 Key id 合并到一列中 Product Location Key Id Car VA 86421910 Car VA 8642448
  • 对象Vba读取项目

    我无法读取电影对象 我不知道为什么 我试图将 JSOn API 返回到 Excel 中的工作表 但我无法读取电影对象 Sub getData Dim Movie As Object Dim R As Object Dim scriptCon
  • 根据单元格位置将选择性字段从 Excel 批量插入到 SQL

    我有一个 SSIS 包 我必须从 Excel 工作表中选择一些值并将它们插入到 SQL Server 数据库表中 我是通过执行 sql 任务来完成的 这些是步骤 从映射表中选择所有记录 单元格位置是动态的 因此将其保留在 SQL 表中 大约
  • 如何在不锁定 Excel 文件的情况下打开它?

    我有一个构建 Excel 报告 然后为用户打开它的流程 问题是 如果有人让文件保持打开状态 则该文件将保持锁定状态 并且在第一个人退出 Excel 文件之前 其他人都无法生成报告 有没有办法打开 Excel 文件而不锁定它 使用Proces
  • 当传递 VBA 类的实时实例时,C# ITypeInfo.GetContainingTypeLib 失败

    所以我尝试过打电话ITypeInfo在 VBA 类实例上 虽然它看起来很有希望 但我想看看是否可以获得对其包含项目 类似于类型库 的引用 我想ITypeInfo GetContainingTypeLib可能有用 但它会抛出一个异常 表明 V
  • 将一个 Excel 工作表中的两列与另一工作表中的两列进行比较,如果匹配,则从另一列复制数据

    我一直在考虑使用 Excel VLOOKUP 函数来完成此任务 但我对此非常不熟悉 我需要执行以下操作 在第一张纸上 A 列和 B 列包含 3000 行名字和姓氏 我需要将其与第二张纸进行比较 第二张纸也有名字和姓氏 第三列包含电子邮件地址
  • 如何将受密码保护的 Excel 文件读入 r 中?

    如何将受密码保护的 Excel 文件读入 r 中 我尝试过 excel link 但它不适用于 R 版本 3 2 3 我的版本 我也尝试过 RDCOMClient 但它也不适用于 R 版本 3 2 3 我刚用过xl read file来自e
  • 从一本工作簿复制并粘贴到另一工作簿中

    我编写了以下代码并不断看到pastespecial method of class has failed 我试图克服这个问题 但似乎没有任何效果 我正在尝试从一个工作簿复制整个工作表 并将其粘贴到另一个工作簿中 Set x Workbook
  • 将工作表合并为一张

    我有一些Excel工作表 其风格为 组织1 姓名 职业 克里斯 承包商 简 员工 组织2 姓名 职业 鲍勃 设施 Trey 软件开发人员 并希望将这些工作表合并到具有以下格式的主工作表中 组织名称 职业 1 克里斯 承包商 1 简 员工 2
  • VBA 中的查找和查找下一个

    我正在研究 Excel 宏 当我从另一个 Excel 工作表获取数据时 我需要什么 代码应该首先检查是否有任何其他行具有相同的 FundName 如果找到 则条件适用 我只是给出要检查 FundId 的 Excel 工作表示例 S No F
  • Excel.Application.SelectionChange 仅触发一次

    我只收到第一个事件通知 之后什么也没有发生 有任何想法吗 UPD 我发现了一件奇怪的事情 我的事件处理程序代码如下所示 var cell range Cells 1 1 var rangeName cell Address false fa
  • excel函数查找列中的最后一个数字

    我每天将股票的价值记录在列中 这是一个很长的电子表格 在每列的顶部单元格中 我想使用一个函数来自动显示该列中的最后一个条目 我尝试过 Index 函数以及 Index 函数与 Counta 函数结合使用 但没有成功 有什么建议么 尝试使用L
  • 从 VBA 函数返回数组的正确方法

    我的学校使用 Excel 2016 前 array 时代 因此我使用 VBA 来定义一些我需要的缺失函数 我尝试在 VBA 中实现的一个函数是SEQUENCE 替换 就像这样 Function MYSEQ n As Integer m As
  • Excel VLOOKUP 和 SEARCH 组合

    我试图在文本列中搜索文本字符串的一部分并返回第二列 希望这通过一个示例更有意义 请注意 这个示例是编造的 我无法发布我正在使用的确切数据 但这与它类似 例如 A D E Really good dog Good dog text1 red
  • Excel VBA 模块在运行时未更新

    我有 2 个模块 主模块在运行时更新另一个模块 并在每次更新时运行该模块 问题是另一个模块在运行时似乎没有更新 它运行第一个模块 因为输出全部根据第一个输入 但运行完成后 我检查了其他模块 它已更新 但输出不符合更新的模块 我已经问过这个问
  • 尝试从 Excel 添加附件到电子邮件,但仅知道文件名的第一部分

    我有一个宏 每天用来将自动生成的文件附加到电子邮件中 文件名需要采用某种格式 其中包括日期和时间 并且由于这是自动的 因此只能固有地知道日期 无需手动检查文件 我在用 Attachments Add and format date etc

随机推荐

  • 3D 智慧农场可视化——解锁绿色生态田园

    何为 无人农场 中国工程院院士罗锡文用五句话高度概括 耕种管收生产环节全覆盖 机库田间转移作业全自动 自动避障异况停车保安全 作物生产过程实施全监控 智能决策精准作业全无人 随着新一代信息技术飞速融入传统产业 农业数字化 网络化 智能化逐步
  • 聊天室--javaWeb

    文章目录 一 简介 项目说明 实现的主要功能 系统架构 二 项目代码和demo地址 项目代码 项目demo地址 三 具体的功能实现 登录功能 单点登录 聊天功能的实现 踢人功能 简单的分权限 四 补充说明 关于代码 关于项目部署 一 简介
  • 方舟官方服务器怎么显示血量,方舟端游怎么显示血量

    解决方舟如何显示伤害数字 在ARK ShooterGame Saved Config WindowsNoEditor文件夹下的GameUserSetting文件的 ServerSettings 的最后一行中添加命令 ShowFloating
  • array_filter函数的简单使用

    array filter函数 学习笔记 代码 function test odd var 先创建一个方法 方法是调动test odd函数 return var 1 返回条件 取奇数 a1 array a b c 2 3 4 11 23 ec
  • #vue# vue锚点定位,滚动到具体位置

    需求 点击导航栏的各个tab 跳转 滚动 到当前页面的具体位置 步骤 1 首先在导航栏的版块里面加入方法goToAnchor 以及 跳转的id类名 div class nav item center div About div div To
  • 查看.o, .obj文件符号列表,强大的nm命令

    nm命令可以查看 linux以及windows下的 o obj文件中的符号列表 其中 o文件可以由gcc g 编译得到 obj由vc编译得到 太爽了 以后遇到undefined reference错误的时候就可以这个命令搞定了 举一例子 在
  • 【java笔记】常用接口(2):Consumer接口

    Consumer接口是一个消费型接口 泛型指定什么类型 就可以使用accept消费什么类型数据 直接输出 public class Demo public static void main String args method asd na
  • 高德地图弹窗使用vue模板

  • android 遍历assets下的文件

    在AssetManager中有个list 方法 传入你的子文件名称即可 String flLists this getAssets list your subdir 如果是根目录 那么就是这么写 AssetManager assetMana
  • 集合框架的简要介绍

    目录 集合和数组的区别 Collection接口 ArrayList实现类 ArrayList的创建和使用 linkedList Set接口及其实现类 Set接口特点 HashSet实现类 HashSet特点 HashSet避免对象重复的规
  • Service能够创建界面(addView)吗?

    一个Service能够创建界面 addView 吗 一个app 只有Service 没有Activity 能够通过WindowManager调用addView 添加可视界面吗 答案是可以 但是能够创建的界面类型 WindowManager
  • 虚拟化原理介绍

    什么是虚拟化 一台PC机的组成包括 Keyboard 键盘 Monitor 显示器 CPU RAM I O Disk Network 这是基本的五大部件 虚拟化就是在这些基础物理设备上运行多个OS 虚拟化面临的重要问题概述 CPU RAM
  • Android :提取字符串当中的数字

    String a String regEx 0 9 Pattern p Pattern compile regEx Matcher m p matcher fl System out println m replaceAll trim 结果
  • 含测试点归纳

    小编提示 本文含静态测试主要检查点 纯干货 看官们可先收藏后阅读 从是否执行被测试软件来进行分类 测试可以分为静态测试和动态测试 软件本身包含了各种代码 如果只是检查代码和文档 而不执行被测试的软件 此时所进行的就是静态测试 反之 如果在测
  • 解决Jasperreport的web 套打

    前段时间写了一篇 解决Jasperreport的web打印另一种方法http www blogjava net three 3 archive 2010 06 24 324329 html 关于在web中的打印 套打是经常被提到的 这个需求
  • Spring学习04

    文章目录 与持久层整合 与Mybatis整合 事务处理 Spring控制事务开发 事务属性 隔离属性 isolation 传播属性 propagation 只读属性 read only 超时属性 timeout 异常属性 实践使用 基于标签
  • 使用sqlite3 模块操作sqlite3数据库

    Python内置了sqlite3模块 可以操作流行的嵌入式数据库sqlite3 如果看了我前面的使用 pymysql 操作MySQL数据库这篇文章就更简单了 因为它们都遵循PEP 249 所以操作方法几乎相同 废话就不多说了 直接看代码吧
  • 从零开始搭建kafka开发环境

    Part1前言 最近选用kafka作为消息缓存 来低于大流量的数据 Kafka是一种高吞吐量的分布式发布订阅消息系统 有如下特性 通过O 1 的磁盘数据结构提供消息的持久化 这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能 高吞
  • scanf("%s")读取字符串

    关于c语言字符串读取 可以看出 读取的起始位置就是自己传入的位置 如果写成scanf s a 则默认就是起始地址 这里需要注意的是 由于scanf s 遇到空白符停止的特点 输出数组时候需要指定起始地址为读入时候的地址 否则没有输出 求长度
  • [Office] WPS Excel通过添加宏实现多张表格合并

    在我们使用Excel时 通常会遇到让各个地区 各个学院或下属单位收集数据的情况 有时还会每月 每周 甚至是每日调度数据 而当我们得到了这些Excel文件表格之后 很多同志会进行人工手动汇总 这大大降低了办公的效率 本文主要介绍WPS Exc