通过VBA宏合并Excel工作表

工作中经常会用到的把几个Excel文件合并到一个,或者是把一个Excel文件里的所有Sheet合并到一个Sheet来进行统计。下面分别提供用vba宏来解决这两个问题的方法。

1、合并Excel文件

打开一个空Excel文件,Alt+F11,插入一个模块,开始写代码:

Sub MergeWorkbooks()Dim FileSetDim i As IntegerOn Error GoTo 0Application.ScreenUpdating = FalseFileSet = Application.GetOpenFilename(FileFilter:="Excel 2003(*.xls),*.xls,Excel 2007(*.xlsx),*.xlsx", _MultiSelect:=True, Title:="选择要合并的文件")If TypeName(FileSet) = "Boolean" ThenGoTo ExitSubEnd IfFor Each Filename In FileSetWorkbooks.Open FilenameSheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)NextExitSub:Application.ScreenUpdating = TrueEnd Sub

这段代码的作用:它首先打开一个文件选择框,你可以选择一个或多个文件,然后把这些文件里的所有Sheet合并到当前这个工作簿里来,有重名的Sheet会自动在后面加数字。

2、合并一个EXCEL多个sheet的内容到一个汇总sheet

同上,再添加一个模块吧,代码如下:

Function LastRow(sh As Worksheet)On Error Resume NextLastRow = sh.Cells.Find(what:="*", _After:=sh.Range("A1"), _Lookat:=xlPart, _LookIn:=xlFormulas, _SearchOrder:=xlByRows, _SearchDirection:=xlPrevious, _MatchCase:=False).RowOn Error GoTo 0
End FunctionSub MergeSheets()Dim sh As WorksheetDim DestSh As WorksheetDim Last As LongDim shLast As LongDim CopyRng As RangeDim StartRow As LongApplication.ScreenUpdating = FalseApplication.EnableEvents = False'新建一个“汇总”工作表Application.DisplayAlerts = FalseOn Error Resume NextActiveWorkbook.Worksheets("汇总").DeleteOn Error GoTo 0Application.DisplayAlerts = TrueSet DestSh = ActiveWorkbook.Worksheets.AddDestSh.Name = "汇总"'开始复制的行号,忽略表头,无表头请设置成1StartRow = 2For Each sh In ActiveWorkbook.WorksheetsIf sh.Name <> DestSh.Name ThenLast = LastRow(DestSh)shLast = LastRow(sh)If shLast > 0 And shLast >= StartRow ThenSet CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))If Last + CopyRng.Rows.Count > DestSh.Rows.Count ThenMsgBox "内容太多放不下啦!"GoTo ExitSubEnd IfCopyRng.CopyWith DestSh.Cells(Last + 1, "A").PasteSpecial xlPasteValues.PasteSpecial xlPasteFormatsApplication.CutCopyMode = FalseEnd WithEnd IfEnd IfNextExitSub:Application.GoTo DestSh.Cells(1)DestSh.Columns.AutoFitApplication.ScreenUpdating = TrueApplication.EnableEvents = TrueEnd Sub

这段代码的作用:它会新建一个叫做“汇总”的工作表,然后把当前工作簿里的所有Sheet里有数据的内容都复制到“汇总”表里。提示:如果数据表里的内容没有表头的话需要把StartRow = 2改成StartRow = 1。

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

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

相关文章

Dueling Network

Dueling Network —— Dueling Network Architectures for Deep Reinforcement Learning 论文下载地址 论文介绍 图9. Dueling Network 模型结果示意图 Dueling Network与传统DQN的区别在于神经网络结构的不同&#xff0c;Dueling Netowrk在传统DQN的基础上只进行了微小的改动…

Flowise AI:用于构建LLM流的拖放UI

推荐&#xff1a;使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 什么是Flowise AI&#xff1f; Flowise AI是一个开源的UI可视化工具&#xff0c;用于帮助开发LangChain应用程序。在我们详细介绍 Flowise AI 之前&#xff0c;让我们快速定义 LangChain。LangChain是…

MapTR论文笔记

MAPTR: STRUCTURED MODELING AND LEARNING FOR ONLINE VECTORIZED HD MAP CONSTRUCTION 目的 传统高精地图 通过一些离线的基于 SLAM 的方法生成&#xff0c;需要复杂的流程以及高昂的维护费用。基于 bev 分割的建图方法&#xff0c;缺少向量化 实例级的信息&#xff0c;比如…

应急响应-web后门(中间件)的排查思路

0x01 获取当前网络架构 语言&#xff0c;数据库&#xff0c;中间件&#xff0c;系统环境等 0x02 分析思路 1.利用时间节点筛选日志行为 2.利用已知的漏洞在日志进行特征搜索&#xff0c;快速定位到目标ip等信息 3.后门查杀&#xff0c;获取后门信息&#xff0c;进一步定位目…

基于Vue+wangeditor实现富文本编辑

目录 前言分析实现具体解决的问题有具体代码实现如下效果图总结前言 一个网站需要富文本编辑器功能的原因有很多,以下是一些常见的原因: 方便用户编辑内容:富文本编辑器提供了类似于Office Word的编辑功能,使得那些不太懂HTML的用户也能够方便地编辑网站内容。提高用户体验…

从零开始实现一个 mini-Retrofit 框架

前言 本篇文章将采用循序渐进的编码方式&#xff0c;从零开始实现一个Retorift框架&#xff0c;在实现过程中不断提出问题并分析实现&#xff0c;最终开发出一个mini版的Retrofit框架 演示一个使用OkHttp的项目Demo 为了更好的演示框架的实现过程&#xff0c;这里我先创建了一…

Compose应用案例(利用docker compose安装lnmp实例)

目录 Compose应用案例 一、前提配置 &#xff08;一&#xff09;安装docker-ce&#xff08;Linux安装Docker&#xff09; &#xff08;二&#xff09;安装docker-compose 二、安装docker compose部署lnmp &#xff08;一&#xff09;目录结构&#xff1a; &#xff08;二…

SPM(Swift Package Manager)开发及常见事项

SPM怎么使用的不再赘述&#xff0c;其优点是Cocoapods这样的远古产物难以望其项背的&#xff0c;而且最重要的是可二进制化、对xcproj项目无侵入&#xff0c;除了网络之外简直就是为团队开发的项目库依赖最好的管理工具&#xff0c;是时候抛弃繁杂低下的cocoapods了。 一&…

c语言——杨辉三角

//杨辉三角 #include<stdio.h> int main() {int i,j,k,n0,a[10][10];while(n<0||n>13){/*行数不超过13&#xff0c;为了显示规范*/printf("n即输入行数");scanf("%d",&n);}printf("%d行杨辉三角如下&#xff1a;\n",n);for(i1;i…

SpringCloud(29):Nacos简介

1 什么是配置中心 1.1 什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息&#xff0c;配置基本上伴随着应用程序的整个生命周期&#xff0c;比如&#xff1a;数据库连接参数、启动参数等。 配置主要有以下几个特点&#xff1a; 配置是独立于程序的只读变量 …

IPsec

数据认证 数据认证是指验证数据的真实性、完整性和可信度的过程。它确保数据在传输、存储和处理过程中没有被篡改或损坏&#xff0c;并且数据的来源可信。 数据认证的主要作用包括&#xff1a; 数据完整性保护&#xff1a;通过校验和、哈希算法等方法&#xff0c;检测数据是否…

GoogLeNet卷积神经网络-笔记

GoogLeNet卷积神经网络-笔记 GoogLeNet是2014年ImageNet比赛的冠军&#xff0c; 它的主要特点是网络不仅有深度&#xff0c; 还在横向上具有“宽度”。 由于图像信息在空间尺寸上的巨大差异&#xff0c; 如何选择合适的卷积核来提取特征就显得比较困难了。 空间分布范围更广的…

On Evaluation of Embodied Navigation Agents 论文阅读

论文信息 题目&#xff1a;On Evaluation of Embodied Navigation Agents 作者&#xff1a;Peter Anderson&#xff0c;Angel Chang 来源&#xff1a;arXiv 时间&#xff1a;2018 Abstract 过去两年&#xff0c;导航方面的创造性工作激增。这种创造性的输出产生了大量有时不…

MyBatis快速入门

MyBatis快速入门 MyBatis简介 什么是MyBatis? MyBatis 是一款优秀的持久层框架&#xff0c;用于简化JDBC开发MyBatis本是Apache 的一个开源项目iBatis,2010年这个项目由apache softwarefoundation 迁移到了google code&#xff0c;并且改名为MyBatis 2013年11月迁移到Githu…

go 内置函数copy()

go内置函数copy go 内置函数copy()函数说明&#xff1a;代码例子1&#xff1a;代码例子2&#xff1a;代码例子3&#xff1a; go 内置函数copy() 函数说明&#xff1a; 当我们在Go语言中需要将一个切片的内容复制到另一个切片时&#xff0c;可以使用内置的copy()函数。copy()函…

如何推导椭圆的参数方程

椭圆基础知识 椭圆定义&#xff1a;椭圆上任意一点到两焦点的距离之和为2a 如何由椭圆定义推出椭圆标准方程呢&#xff1f; 如上图所示。 由定义可得已知条件为 ∣ M C 1 ∣ ∣ M C 2 ∣ 2 a 当 M 落在顶点 P 上时&#xff0c;可得另一已知条件 a 2 − b 2 c 2 当有了已…

在Python中应用RSA算法实现图像加密:基于Jupyter环境的详细步骤和示例代码

一、引言 在当今的数字化社会中,信息安全问题备受关注。随着数字图像在生活中的应用越来越广泛,图像的安全性和隐私性也成为人们关心的焦点。如何在网络上安全地传输和存储图像已经成为一项重要的挑战。RSA(Rivest-Shamir-Adleman)算法作为一种被广泛应用的公钥密码体系,…

2022ICPC南京站 B. Ropeway

也许更好的阅读体验 D e s c r i p t i o n \mathcal{Description} Description n 2 n2 n2个点编号 0 &#xff5e; n 1 0&#xff5e;n1 0&#xff5e;n1&#xff0c;每个点有点权&#xff0c;要求选若干个点使得总点权最小&#xff0c;其中编号为 0 0 0和 n 1 n1 n1的点必…

unity行为决策树实战详解

一、行为决策树的概念 行为决策树是一种用于游戏AI的决策模型&#xff0c;它将游戏AI的行为分解为一系列的决策节点&#xff0c;并通过节点之间的连接关系来描述游戏AI的行为逻辑。在行为决策树中&#xff0c;每个节点都代表一个行为或决策&#xff0c;例如移动、攻击、逃跑等…

SpringBoot3 整合Prometheus + Grafana

通过Prometheus Grafana对线上应用进行观测、监控、预警… 健康状况【组件状态、存活状态】Health运行指标【cpu、内存、垃圾回收、吞吐量、响应成功率…】Metrics… 1. SpringBoot Actuator 1. 基本使用 1. 场景引入 <dependency><groupId>org.springframew…