当前位置: 首页 > news >正文

使用VBA宏合并多个Excel文件的Sheet页

使用VBA宏合并多个Excel文件的Sheet页

在日常的Excel数据处理工作中,我们经常需要将多个Excel文件中的工作表合并到一个Excel文件中。这种操作可以极大地提高数据处理效率,但如果文件数量较多,手动合并会非常繁琐。本文将介绍如何使用VBA宏来实现这个需求,以便更快速、自动化地完成多个工作表的合并操作。

为什么使用VBA宏合并工作表?

  • 批量处理:VBA宏可以在短时间内将多个文件中的工作表合并到一个目标文件中,避免重复的人工操作。
  • 灵活性:通过VBA宏代码,可以灵活地设置文件选择方式、文件格式等参数,满足不同需求。
  • 可扩展性:VBA宏代码可以根据需求进行定制,例如一次性选择所有文件、逐个导入文件等。

接下来,我们将具体讲解如何实现一个个文件的选择和导入,以便有序、灵活地控制每个工作表的导入。

实现步骤

1. 打开目标Excel工作簿

首先,打开一个空白或已存在的目标Excel工作簿,这是用于接收其他文件中工作表的Excel文件。

2. 打开VBA编辑器

  1. 在Excel中按下 Alt + F11,进入VBA编辑器。
  2. 在左侧“项目”窗口中,右键点击当前工作簿。
  3. 选择“插入”->“模块”,添加一个新的模块文件。

3. 插入VBA代码

在新模块中粘贴以下VBA代码:

Sub 单个导入工作表()Dim 文件对话框 As FileDialogDim 文件路径 As StringDim 目标工作簿 As WorkbookDim 源工作簿 As WorkbookSet 目标工作簿 = ThisWorkbook' 创建文件对话框让用户选择文件Set 文件对话框 = Application.FileDialog(msoFileDialogFilePicker)With 文件对话框.AllowMultiSelect = False.Filters.Clear.Filters.Add "Excel文件", "*.xls*;*.xlsx;*.xlsm".Title = "请选择要导入的Excel文件"If .Show = -1 Then文件路径 = .SelectedItems(1)ElseExit SubEnd IfEnd With' 打开选定的Excel文件Set 源工作簿 = Workbooks.Open(文件路径)' 复制所有工作表到目标工作簿For Each 工作表 In 源工作簿.Worksheets工作表.Copy After:=目标工作簿.Sheets(目标工作簿.Sheets.Count)Next' 关闭源工作簿源工作簿.Close SaveChanges:=FalseMsgBox "工作簿 '" & Dir(文件路径) & "' 中的所有工作表已成功导入!"
End Sub

4. 运行宏

  1. 返回Excel工作表,按 Alt + F8 打开宏对话框。
  2. 选择“单个导入工作表”宏,点击“运行”。
  3. 在弹出的文件选择对话框中,选择您希望导入的Excel文件。
  4. 点击“打开”以导入文件中的工作表。

每次运行宏后,系统会将您选择的文件中的所有工作表复制到目标工作簿中。

5. 重复操作

如果有多个文件需要合并,可以重复运行宏,并依次选择要导入的文件,直到所有文件的工作表都导入完成。

代码说明

该宏代码的主要逻辑如下:

  1. 创建文件对话框:使用 Application.FileDialog(msoFileDialogFilePicker) 创建一个文件选择对话框,让用户选择一个Excel文件。
  2. 打开文件:选定文件后,使用 Workbooks.Open(文件路径) 打开该文件。
  3. 复制工作表:遍历源工作簿中的所有工作表,并将其复制到目标工作簿的末尾。
  4. 关闭源工作簿:复制完成后,关闭源工作簿,避免占用内存。

注意事项

  • 宏的重复运行:由于每次运行宏只能导入一个文件中的工作表,如果有多个文件需要导入,则需要多次运行宏,逐个选择文件。
  • 避免重复导入:请确保每次选择不同的文件,避免同一个文件的工作表重复导入。
  • 文件格式:代码中允许的文件格式包括 .xls.xlsx.xlsm。如有其他文件类型需求,可修改 .Filters.Add 的内容。
  • 宏安全设置:如果无法运行宏,可能是Excel的宏安全设置较高,导致VBA代码无法执行。可以在“开发工具”->“宏安全性”中调整设置以允许宏运行。
  • 保存目标工作簿:导入完成后,记得保存目标工作簿,以免合并的内容丢失。

相关文章:

使用VBA宏合并多个Excel文件的Sheet页

使用VBA宏合并多个Excel文件的Sheet页 在日常的Excel数据处理工作中,我们经常需要将多个Excel文件中的工作表合并到一个Excel文件中。这种操作可以极大地提高数据处理效率,但如果文件数量较多,手动合并会非常繁琐。本文将介绍如何使用VBA宏来…...

Anolis8防火墙安全设置

一、账号安全 1、禁止root远程登录 首先创建一个普通用户,然后修改系统配置禁止root登录,因为root作为系统默认的超级管理员,权限过大,日常操作使用易导致安全风险。 1.1、首先要建立一个新的登录用户 useradd username #增…...

标题:自动化运维:现代IT运维的革新力量

标题:自动化运维:现代IT运维的革新力量 随着信息技术的飞速发展,企业对于IT系统的依赖日益加深,运维工作的重要性也愈发凸显。传统的运维模式,往往依赖于人工操作,效率低下且容易出错,难以满足…...

无人机之姿态融合算法篇

无人机的姿态融合算法是无人机飞行控制中的核心技术之一,它通过将来自不同传感器的数据进行融合,以实现更加精确、可靠的姿态检测。 一、传感器选择与数据预处理 无人机姿态融合算法通常依赖于多种传感器,包括加速度计、陀螺仪、磁力计等。这…...

Redis系列---数据管理

目录标题 数据类型String优点缺点底层结构使用场景实际使用 List优点缺点底层结构使用场景实际使用 Hash优点缺点底层结构使用场景实际使用 Set优点缺点底层结构使用场景实际使用 Zset优点缺点底层结构使用场景实际使用 HyperLogLog优点缺点底层结构使用场景实际使用 GEO优点缺…...

【Linux系统编程】第四十二弹---多线程编程全攻略:涵盖线程创建、异常处理、用途、进程对比及线程控制

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程创建 2、线程异常 3、线程用途 4、进程 VS 线程 5、线程控制 5.1、创建和等待线程 1、线程创建 线程能看到进程的大…...

Rust 力扣 - 2379. 得到 K 个黑块的最少涂色次数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 本题可以转换为求长度为k的子数组中白色块的最少数量 我们遍历长度为k的窗口,我们只需要记录窗口内的白色块的数量即可,遍历过程中刷新白色块的数量的最小值 题解代码 impl Solution {…...

“单元测试”应该怎么写比较好

如何正确写单元测试 单元测试重要性写单元测试时存在的问题1、如何命名测试类&方法1.1、测试类命名规范1.2、测试方法命名规范 2、测试类的要求2.1测试行覆盖率100%2.2、单一职责2.3、可重复2.4、外部隔离,无任何外部依赖2.5、正确的使用断言2.6、不应该为了测试…...

腾讯开源首个文图生3D大模型Hunyuan3D-1.0

🦉 AI新闻 🚀 腾讯开源首个文图生3D大模型Hunyuan3D-1.0 摘要:腾讯混元于11月5日开源了Hunyuan3D-1.0,这是首个同时支持文本生成和图像生成的3D开源大模型。该模型采用两阶段生成方法,可以在10秒内生成3D资产。第一阶…...

c语言简单编程练习10

1、typedef和#define的区别 在用作数据类型替换时的区别&#xff1a; #include <stdio.h> #include <unistd.h>typedef char * A; //typedef需要&#xff1b; #define B char *int main(int argc, char *argv[]) {A a,b;B c,d;printf("a_size%ld\n"…...

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测

时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…...

数据结构[2016]

一、设有二维数组A[6][8],每个元素占6个字节存储&#xff0c;实现存放&#xff0c;A[0][0]的起始地址为1000,计算&#xff1a; (10分) (1)数组最后一个元素A[5][7]的起始地址&#xff1b; (2)按行优先存放时&#xff0c;元素A[1][4]的起始地址&#xff1b; (3)按列优先存放时…...

DBAPI连接阿里云 maxcompute 报错

使用正确的驱动包 访问以下链接寻找驱动包 https://github.com/aliyun/aliyun-odps-jdbc/releases/tag/v3.4.3 注意要使用odps-jdbc-3.4.3-jar-with-dependencies.jar &#xff0c;这个是完整的jar包 不要使用odps-jdbc-3.4.3.jar&#xff0c;这个不是完整的&#xff0c;它还…...

Web3对社交媒体的影响:重新定义用户互动方式

随着互联网的发展和人们对隐私、安全、所有权的需求不断提高&#xff0c;Web3 的概念逐渐深入人心。Web3 的出现标志着一个去中心化、用户主导的网络时代的到来&#xff0c;这也将对社交媒体产生深远的影响。Web3 不仅推动社交媒体从中心化模式向用户主导的去中心化模式转变&am…...

【LeetCode】【算法】322. 零钱兑换

LeetCode 322. 零钱兑换 题目 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回-1。 你可以认为每…...

人工智能技术:未来生活的“魔法师”

想象一下&#xff0c;未来的某一天&#xff0c;你醒来时&#xff0c;智能助手已经为你准备好了早餐&#xff0c;你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐&#xff0c;而你的自动驾驶汽车已经在门口等你。这不是科幻小说&#xff0c;这是人工智能技术为我…...

docker加载目录中所有的镜像

docker加载目录中所有的镜像 首先我们知道读取单个命令如下: docker load -i example_image.tar.gz读取两三个也是: docker load -i image1.tar.gz image2.tar.gz image3.tar.gz但是如果是几十个&#xff0c;那么上面的命令就显得捉襟见肘了&#xff1b;比如当前我有个image…...

使用免费的飞书机器人,实现消息推送实时通知

大家好&#xff0c;我是小悟。 实际工作中&#xff0c;我们会经常遇到需要给用户发送业务通知的功能需求&#xff0c;如果是小程序端&#xff0c;那么就使用小程序提供的模板消息通知&#xff0c;如果是APP端&#xff0c;一般就是使用个推、极光等第三方平台。 当然还有个万能…...

各种网络设备的工作原理

网络设备的工作原理涉及多种设备&#xff0c;包括路由器、交换机、防火墙等&#xff0c;它们各自承担着不同的功能。以下是对这些设备工作原理的详细解释&#xff1a; 一、路由器路由器是互联网通信中的关键设备&#xff0c;它负责在不同网络之间传输数据包。功能&#xff1a;路…...

FilterListener组件

文章目录 Java Web三大组件一、Filter概述二、Filter开始1_过滤器API介绍2_过滤器开发步骤3_代码实现4_过滤器执行流程小结 三、使用细节1_生命周期2_拦截路径3_过滤器链 四、Listener1_Listener概述2_监听器举例3_Listener开始4_案例:模拟spring框架 Java Web三大组件 组件: 是…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...