宏处理将多个excel文件的指定sheet页合并到一个excel文件中

背景了解:有个同事问我:现在他要处理一千多个文件,每个excel文件都有3个sheet页签,想把所有的excel文件的第二个sheet页签复制一份放到一个新的excel文件中。如果是手动去操作一个个文件的复制,也没什么不可,就是有点费手。像这种大批量的对文件做相同的操作,肯定会有更简便的方法替代,这样我们就可以把更多的精力放在具体的业务处理上了。

提前了解:

1.VB宏是什么?

VB(Visual Basic)宏是一种在 Microsoft Office 应用程序(如 Excel、Word、Access 等)中使用的自动化脚本。这些宏允许用户编写 VBA(Visual Basic for Applications)代码来自动化任务,提高工作效率。VBA 是 Visual Basic 的一个子集,专门用于 Office 应用程序的自动化。

2.VB宏的特点

  • 自动化任务:宏可以自动执行一系列操作,如数据处理、格式化、文件操作等。
  • 用户界面:宏可以通过按钮、菜单项或其他用户界面元素触发。
  • 事件驱动:宏可以响应用户操作或特定事件(如工作表更改、工作簿打开等)。
  • 丰富的库支持:VBA 提供了大量的内置对象和方法,可以方便地操作 Office 应用程序的各种功能。

3.环境准备

需要先有下图工具:版本不限

4.操作步骤

4.1新建空文件

创建一个新的空的excel文件,用来存储最终结果的文件,记住该文件的路径,并用上述excel工具打开文件:如下为空文件

4.2创建宏

找到开发工具:

然后再找到VB编辑器:

进入如下VB编辑器页面,只要能进入编辑器页面就可以,有部分软件的进入方式可能不同:

然后插入一个模块:

在下方空白弹窗出加入以下代码:

Sub CopySheetsFromFolder()Dim srcFolder As StringDim dstWorkbook As WorkbookDim srcWorkbook As WorkbookDim fileName As StringDim ws As Worksheet' 指定源文件夹路径,重点:需要修改srcFolder = "C:\Users\123456\Desktop\"' 请替换为实际的文件夹路径' 打开目标工作簿,重点:一个新的空的xlsx文件的全路径名称On Error Resume NextSet dstWorkbook = Workbooks.Open("C:\Users\123456\Desktop\ceshi.xlsx")On Error GoTo 0If dstWorkbook Is Nothing ThenMsgBox "无法打开目标工作簿 ceshi.xlsx", vbCriticalExit SubEnd If' 获取文件夹中的第一个 .xlsx 文件fileName = Dir(srcFolder & "*.xlsx")' 遍历文件夹中的所有 .xlsx 文件Do While fileName <> ""' 打开源文件On Error Resume NextSet srcWorkbook = Workbooks.Open(srcFolder & fileName)On Error GoTo 0If srcWorkbook Is Nothing ThenMsgBox "无法打开文件 " & srcFolder & fileName, vbCriticalGoTo NextFileEnd If' 检查源文件是否有至少2个工作表:重点:想要合并的sheet页签为第几个sheetIf srcWorkbook.Sheets.Count >= 2 Then' 获取第二个工作表,重点:sheet(23)为sheet页签的名称Set ws = srcWorkbook.Sheets(23)' 将第二个工作表复制到目标工作簿的最后一个工作表之后ws.Copy After:=dstWorkbook.Sheets(dstWorkbook.Sheets.Count)ElseMsgBox "文件 " & fileName & " 不包含第二个工作表", vbExclamationEnd If' 关闭源文件srcWorkbook.Close SaveChanges:=FalseNextFile:' 获取下一个文件fileName = DirLoop' 提示完成MsgBox "所有文件的第二个工作表已成功复制到 ceshi.xlsx", vbInformation
End Sub

4.3运行宏

然后运行代码:

运行完后,查看刚刚新建的文件即可得到结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系列-进程的概念

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 这篇文章&#xff0c;我们主要分析一下进程。 之前&#xff0c;我们讲过了冯诺依曼体系架构&#xff0c; 我们常见的计算机&#xff0c;像笔记本&#xff0c;或者不常见的计算机…

SQL优化经验大全(表设计优化,索引优化,索引创建规则、索引失效场景,sql语句优化,主从复制,分库分表)面试题

目录 1.表的设计优化 2.索引优化 2.1 索引创建的规则 2.2 索引失效的场景 3.SQL语句优化 4.主从复制、读写分离 5.分库分表 5.1.怎么判断项目是需要分库还是要分表&#xff1f; 5.2 分库分表有哪些拆分方案&#xff1f; 5.2.1 垂直分库 5.2.2 垂直分表 5.2.3 水平分…

【VMware】使用笔记

一、安装 win11支持16.2以上版本&#xff0c;其他版本不兼容 安装参考&#xff1a; 二、设置 1、蓝屏设置 参考&#xff1a;win11打开VMware虚拟机蓝屏解决_win11vmware蓝屏-CSDN博客 2、VMwareTool配置 第一步&#xff1a;移除“open-vm-tools” sudo apt-get autoremo…

css边框修饰

一、设置线条样式 通过 border-style 属性设置&#xff0c;可选择的一些属性如下&#xff1a; dotted&#xff1a;点线 dashed&#xff1a;虚线 solid&#xff1a;实线 double&#xff1a;双实线 效果如下&#xff1a; 二、设置边框线宽度 ① 通过 border-width 整体设置…

OpenGL入门002——顶点着色器和片段着色器

文章目录 一些概念坐标转换阶段顶点着色器片段着色器VBOVAO 实战简介main.cppCMakeLists.txt最终效果 一些概念 坐标转换阶段 概述&#xff1a; 模型空间、世界空间、视图空间和裁剪空间是对象在3D场景中经历的不同坐标变换阶段。每个空间对应渲染管道的一个步骤&#xff0c;…

LeetCode 684.冗余连接:拓扑排序+哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n)))

【LetMeFly】684.冗余连接&#xff1a;拓扑排序哈希表&#xff08;O(n)&#xff09; 或 并查集&#xff08;O(nlog n)-O(nα(n))&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/redundant-connection/ 树可以看成是一个连通且 无环 的 无向 图。 给定往…

C语言指针与一维数组 Java动态初始化与常见问题(越界问题)

1./*int main(void) { int a[5] { 10,20,30,40,50 };//数组间的元素地址相连的 int* p; printf("a代表的地址&#xff1a;%d\n", a);//数组首个元素的地址 printf("a1代表的地址&#xff1a;%d\n", a 1);//偏移数组 printf("a2…

2023年SEO趋势分析与未来发展展望

内容概要 在2023年的数字营销环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;依然扮演着关键角色。随着技术的不断演进和用户需求的变化&#xff0c;SEO趋势也在不断变化。首先&#xff0c;核心算法的更新已开始影响网站排名&#xff0c;搜索引擎越来越注重网站内…

面试经典 150 题:189、383

189. 轮转数组 【参考代码】 class Solution { public:void rotate(vector<int>& nums, int k) {int size nums.size();if(1 size){return;}vector<int> temp(size);//k k % size;for(int i0; i<size; i){temp[(i k) % size] nums[i];}nums temp; }…

Linux云计算 |【第五阶段】CLOUD-DAY8

主要内容&#xff1a; 掌握DaemonSet控制器、污点策略&#xff08;NoSchedule、Noexecute&#xff09;、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP&#xff08;服务名自动发现&#xff09;、&#xff08;Nodeport、Headless&#xff09;、Ingress控制器 一…

智能网联汽车:人工智能与汽车行业的深度融合

内容概要 在这个快速发展的时代&#xff0c;智能网联汽车已经不再是科幻电影的专利&#xff0c;它正在悄然走进我们的日常生活。如今&#xff0c;人工智能&#xff08;AI&#xff09;技术与汽车行业的结合犹如一场科技盛宴&#xff0c;让我们看到了未来出行的新方向。通过自动…

Iceoryx2:高性能进程间通信框架(中间件)

文章目录 0. 引言1. 主要改进2. Iceoryx2 的架构3. C示例代码3.1 发布者示例&#xff08;publisher.cpp&#xff09;3.2 订阅者示例&#xff08;subscriber.cpp&#xff09; 4. 机制比较5. 架构比较6. Iceoryx vs Iceoryx2参考资料 0. 引言 Iceoryx2 是一个基于 Rust 实现的开…

NumPy安装

1.NumPy简介 NumPy(Numerical Python) 是 Python 语言的扩展程序库&#xff0c;支持大量维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早由 Jim Hugunin 与其它协作者共同开发&#xff0c;2005 年&#xff0c;Travis Oliph…

全自动一键批量创建站群网站插件 | Z-BlogPHP 堆词起站工具

在当今竞争激烈的数字营销世界&#xff0c;如何快速提升网站曝光率和流量&#xff1f;答案就是智能站群系统。 本文将结合实际效果&#xff0c;介绍一款功能强大的站群系统&#xff0c;重点讲述其堆词功能、泛目录管理、一键批量创建、内容转码、自定义标签和GPT内容生成与发布…

C++研发笔记11——C语言程序设计初阶学习笔记9

本篇笔记我们继续第二部分《初识C语言》的学习&#xff0c;上一篇学习笔记当中我们详细学习了常见关键字以及#define 定义常量和宏的相关知识&#xff0c;接下来第二部分的内容的内容还包括&#xff1a;指针以及结构体。 第二部分 初识C语言 十三、指针 // 学习指针之前&am…

Apache HTTP Sever 的初级操作指南

Apache 初级操作指南 摘要&#xff1a; 本文详细介绍了 Apache HTTP Server 的初级操作方法&#xff0c;包括安装与配置、启动与停止服务、虚拟主机设置以及访问日志与错误日志的查看与分析等内容。通过本文的学习&#xff0c;初学者可以快速掌握 Apache 的基本操作&#xff0…

[数组排序] LCR 164. 破解闯关密码

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 LCR 164. 破解闯关密码 - 力扣&#xff08;LeetCode&#xff09; 2. 题目大意 描述&#xff1a;给定一个非负整数数组 nums。 要求&#xff1a;将数组中的数字拼接起来排成一个数&#xff0c;打印…

【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例

说明&#xff1a;本专栏内容来自于个人学习笔记、以及相关项目的实践与总结。写作目的是为了让读者体会深度学习的独特魅力与无限潜力&#xff0c;以及在各行各业之中的应用与实践。因作者时间精力有限&#xff0c;难免有疏漏之处&#xff0c;期待与读者共同进步。 前言 在当今…

C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(1)

在使用模块之前&#xff0c;头文件用于提供代码重用的接口。头文件确实有许多问题&#xff0c;比如避免同一头文件的多重包含以及确保头文件的包含顺序正确。还有&#xff0c;简单的#include&#xff0c;例如&#xff0c;<iostream>就添加了几千行代码&#xff0c;编译器…

第十五章 Vue工程化开发及Vue CLI脚手架

目录 一、引言 二、Vue CLI 基本介绍 三、安装Vue CLI 3.1. 安装npm和yarn 3.2. 安装Vue CLI 3.3. 查看 Vue 版本 四、创建启动工程 4.1. 创建项目架子 4.2. 启动工程 五、脚手架目录文件介绍 六、核心文件讲解 6.1. index.html 6.2. main.js 6.3. App.vue 一、…