excel如何快速把多个工作表合并到一个excel表
有这么一种情况,就是我们有很多张excel,而且excel表里面的公式基本一样,我们就想快速的把这些excel合并在一起,意思在合并在一个excel页面,这样可以方便我们分析和统计,那么excel如何快速把多个工作表合并到一个excel表?下面为大家介绍这种方法,希望能帮助到大家。
操作步骤:
1、原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。
2、在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。
3、按Alt+F11进入VBA代码编辑和调试界面。
4、根据下图提示,插入一个模块。
5、将下述代码粘贴到模块空白处:
Dim wsNewWorksheet As Worksheet
Dim cel As Range
Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant
Dim TitleRow, TitleColumn As Range
Dim Num As Integer
Dim DataRows As Long
DataRows = 1
Dim TitleArr()
Dim Choice
Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$
Dim n, i
n = 1
i = 1
Application.DisplayAlerts = False
Worksheets("合并汇总表").Delete
Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))
wsNewWorksheet.Name = "合并汇总表"
MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")
If MyFileName = "False" Then
MsgBox "没有选择文件!请重新选择一个被合并文件!", vbInformation, "取消"
Else
Workbooks.Open Filename:=MyFileName
Num = ActiveWorkbook.Sheets.Count
MyName = ActiveWorkbook.Name
Set DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:", Type:=8)
AddressAll = DataSource.Address
ActiveWorkbook.ActiveSheet.Range(AddressAll).Select
SourceDataRows = Selection.Rows.Count
SourceDataColumns = Selection.Columns.Count
Application.ScreenUpdating = False
Application.EnableEvents = False
For i = 1 To Num
ActiveWorkbook.Sheets(i).Activate
ActiveWorkbook.Sheets(i).Range(AddressAll).Select
Selection.Copy
ActiveSheetName = ActiveWorkbook.ActiveSheet.Name
Workbooks(ThisWorkbook.Name).Activate
ActiveWorkbook.Sheets("合并汇总表").Select
ActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetName
ActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
DataRows = DataRows + SourceDataRows
Workbooks(MyName).Activate
Next i
Application.ScreenUpdating = True
Application.EnableEvents = True
End If
Workbooks(MyName).Close
End Sub
6、在“首页”工作表中按下图示范插入一个窗体控件并指定宏为插入的代码名称。
7、点击“首页”工作表中插入的按钮,根据提示,浏览到原始数据工作簿。
8、下一步,用鼠标选择要合并的数据范围。
注意:每个工作表数据可能不一样,比如说有的是10行数据,有的是30行数据。在这里我们可以用鼠标选择任意工作表的一个较大范围,比如说A1:D100,保证比最多行数的工作表数据还多就可以,一会再删除空行。
9、点击确定按钮,待代码运行完毕后,所有的数据就都合并到了“合并汇总表”中。
注意:
1)A列的文本说明右侧的数据来自于原始数据表的哪个工作表;
2)数据之间会有一些空行,下面通过筛选删除。
10、选中全部数据区域,执行自动筛选。然后选择其中一个字段,选择“空白”和标题内容。
11、然后将筛选出来的无用行鼠标右键删除,再删除A列整列即可,完成效果如下图:
END
以上就是excel如何快速把多个工作表合并到一个excel表的方法,大家看明白了吗?希望能帮助到大家,谢谢大家阅读本篇文章!
相关文章
- EXCEL中的数据透视表比较好用.也比较常用.下面来介绍一下2012-05-31
- 合并单元格经常用到.每天都要用鼠标操作太麻烦了,有没有快捷键叫.当然有了.下面给大家介绍一下2012-05-19
打开Excel出现某个对象程序库(stdole32.tlb)丢失或损坏的解决方法
今天当我打开excel就会出现stdole32.tlb的提示窗口,点确定,Excel就会开始修复,但实际上此修复并不解决问题,下次打开Excel还是会出现此问题,通过下面的方法解决了,特2012-12-11- 我们工作中经常会遇到这种需求,有两个数据表,想要知道两个表的公共部分和独有部分,高级筛选就可以达到此目的。2012-11-07
- excel是一款数据处理工具,可以在众多的数据中找到想要的经过处理之后的数据,而最直接方便的功能就是筛选。请阅读下文,了解如何对数据进行筛选。2012-10-20
《Excel表格自动求和全攻略》单个公式求和批量求和详细图解
Excel中的公式非常强大,我们可以利用Excel完成各种公式的运算,比如Excel求和,求积,求差,求平均值等等,无论多么复杂的数据在Excel表格中都可以快速完成运算。本次Word2012-03-07- 在excel中输入一段文字敲入回车并不能实现诸如word等一样的回车效果,而是自动进入下一个单元格。那么excel中就不能实现一个单元格中文字回车的效果吗?答案肯定是NO!从网2011-04-22
- 有些初学excel软件的网友不知道在excel怎么做曲线图2012-12-19
如何找回word,excel的密码?excel,word的密码找回方法汇总(图)
word,excel文档被加密了.怎么办啊.别争.有方法找回2012-05-19- Excel使我们最常用的一个办公软件,现在有些人的工作量比较大,但是他们可以工作表按横向或者纵向进行拆分,这样就可以在最短的时间内完成工作量了,怎么横向或纵向拆分工2016-06-19
最新评论