多个excel工作簿汇总,同一工作簿中sheets合并
工作中经常会用到的把几个 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。
3.按需合并工作表 在EXCEL中打开宏,将下列代码进行粘贴并保存。然后返回你需要合并的工作表中,运行此宏,看看效果吧。 Sub 合并sheets() n = 12 '源表个数,根据需要修改! nstart = 9 '每个单表数据的开始行数,根据需要修改! k = nstart '目标表的行标 For i = 1 To n irow = nstart '行标 While Sheets(i).Cells(irow + 1, 2) <> "" '后面个1以第2列数据的最后1行是空作为行结束标示,确定源表的行数,根据需要修改! irow = irow + 1 Wend Sheets(i).Rows(nstart & ":" & irow).Copy '复制源数据行 Sheets(n + 1).Activate Sheets(n + 1).Cells(k, 1).Select ActiveSheet.Paste '粘贴数据 k = k + irow - nstart + 1 Next iEnd Sub
多个excel工作簿汇总,同一工作簿中sheets合并相关推荐
- excel 汇总 mysql_Excel中用SQL语句实现多工作簿汇总
对于经常使用Excel的人来说,在Excel中使用SQL能高效处理你的数据,但据我所知Excel中的SQL语法与MySQL数据的语法还有点不一样.现在我就来实例说明如何用SQL语句对多个工作簿进行汇总 ...
- excel汇总数据之汇总多工作簿
1.如下图有三个工作簿,现在我们想要快速汇总出这三个工作簿各数据之和. 2.点击下图选项(Excel工具箱,百度即可了解详细的下载安装信息,本文这里就不做具体解说) 3.点击[汇总拆分], ...
- 跨工作表汇总与跨工作簿汇总,支持WPS和Excel
跨工作表汇总与跨工作簿汇总,支持WPS和Excel 跨工作表汇总与跨工作簿汇总,汇总方式包含求和.计数.求平均值.千百个表格瞬间汇总完成.支持WPS和Excel.
- Excel VBA 将不同工作簿中的工作表,按照工作表名里相同的关键词汇总
命令从下面第一个Sub开始: Sub Collectwks() Dim Sht As Worksheet, rng As Range, Sh As Worksheet Dim Trow&, k ...
- excel中使用VBA进行多工作簿或多工作表一键汇总
1. 同一目录下的多工作簿,每个工作簿中有一张或多张工作表,一键全部汇总 Sub 合并目录所有工作簿全部工作表()Dim MP, MN, AW, Wbn, wnDim Wb As WorkbookDi ...
- excel合并多个工作表_如何快速的合并多个 Excel 工作簿至一个工作簿中的工作表?...
作者:汪汪家的宝贝 链接:https://www.jianshu.com/p/c8ae6852f1da 前言 在日常工作过程中,我们有可能需要把多个Excel工作簿的内容汇总到一张Excel工作表中. ...
- 删除 多个表_合并汇总多个工作簿多个工作表,删除修改新增更新内容只需刷新...
要求:1.把多个工作簿的多个工作表内容合并汇总 2.后续在任一工作表内删除修改新增内容,无需再重新做表 3.后续在任一工作簿中新增一个或多个工作表,无需再重新做表 4.后续在文件夹中添加一个或多个Ex ...
- 拆分工作簿为多个文件_如何批将Excel的多个Sheet工作表拆分为独立的工作簿?...
上一节我们分享了一个工作表拆分为多个工作表的方法,拆分完成之后,我们可能需要把各营业部的数据分别发送给各营业部的负责人,此时,发现各营业部的数据都在一个一个Sheet工作表中,发送是有些不方便呢. 一 ...
- Excel多工作薄汇总——《超级处理器》应用
怎么将下面的工作簿合并到一张工作表中: 所有工作簿 每个工作簿中的数据格式如下: 工作表内容格式 网上有很多教程,但相对比较复杂,我们用<超级处理器>,点点鼠标就可以完成,一起来看下具体怎 ...
最新文章
- swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析
- table1函数----一维查表
- 分发 WxWidgets 应用程序
- 链表中位数(Middle of the Linked List)
- java 存储过程 数组_Java调用存储过程返回数组
- 自己做的一个登录页面,纯代码!
- C#LeetCode刷题-深度优先搜索
- idea展示runDashboard的窗口
- MFC开发IM-第八篇、调整各个控件的上下tab顺序
- js 实现ReplaceAll 的方法
- Windows XP 下安装Perl cpan模块
- Linux下安装禅道
- 蓝桥杯算法提高 盾神与条状项链
- java调试步骤_Java程序的开发过程及基本调试方法
- Vue MVVM模型
- mysql数据库取交集_不同数据库取并集、交集、差集
- 安装百度网盘是提示不能打开要写入的文件
- CCF201412-1门禁系统(C语言)
- Linux-iptables详解
- base cap 分布式_1、分布式基础之CAP和BASE理论