有这么一种情况,就是我们有很多张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,保证比最多行数的工作表数据还多就可以,一会再删除空行。
Excel大括号{}是什么数据如何使用数据的详细介绍
在Excel处理数据的时候,经常会遇到使用大括号{}将数据括起来再进行处理的情况!
9、点击确定按钮,待代码运行完毕后,所有的数据就都合并到了“合并汇总表”中。
注意:
1)A列的文本说明右侧的数据来自于原始数据表的哪个工作表;
2)数据之间会有一些空行,下面通过筛选删除。
10、选中全部数据区域,执行自动筛选。然后选择其中一个字段,选择“空白”和标题内容。
11、然后将筛选出来的无用行鼠标右键删除,再删除A列整列即可,完成效果如下图:
END
以上就是excel如何快速把多个工作表合并到一个excel表的方法,大家看明白了吗?希望能帮助到大家,谢谢大家阅读本篇文章!
上一篇:excel表格中的数据怎么设置小数点快速对齐? 下一篇:Excel大括号{}是什么数据如何使用数据的详细介绍
相关文章
- Excel教程 Excel表格下拉列表怎么设置
Excel表格下拉列表怎么设置呢?很多用户对此还不是很清楚,小编这里就给大家带来有关Excel表格下拉列表怎么设置的回答,希望能够对大家有所帮助。......
2023-01-18
详细阅读 - Excel教程 Excel如何打印选定区域
Excel如何打印选定区域呢?很多用户对此还不是很清楚,小编这里就给大家带来有关Excel如何打印选定区域的回答,希望能够对大家有所帮助。......
2023-01-18
详细阅读 - Excel教程 Excel怎么设置英文首字母大写
Excel怎么设置英文首字母大写?Excel中输入英文首字母大写怎么操作?当我们需要将Excel表格中的英文单词,把首字母全部大写,该怎么操作呢,怎么将Excel中英文首字母大写,Excel怎么设置英文首字母大写,下面就和小编一起来看看吧!......
2023-01-18
详细阅读 - Excel教程 Excel怎么给所有的数字加10
Excel怎么给所有的数字加10?Excel数字怎么全部加10?怎么全部加1?当我们在使用Excel时,所有的数字都少10,或者1,该怎么给所有的数字都 10、 1呢,Excel怎么给所有的数字加10,EXcel数字怎么全部加10,下面就和小编一起来看看吧!......
2023-01-18
详细阅读 - Excel教程 Excel怎么设置日期自动更新
Excel怎么设置日期自动更新?Excel怎么设置日期自动更新?当我们Excel表格中的日期需要实时更新到最新日期,该怎么设置呢,怎么将Excel表格日期自动更新到最新日期,Excel怎么设置日期自动更新,下面就和小编一起来看看吧!......
2023-01-18
详细阅读
Excel横排表格怎么秒变竖排? excel横排变竖排的教程
Excel横排表格怎么秒变竖排?excel中原来的表格是横排的,但是需要拉动滚动条才能看导全部信息,现在想将表格变成竖着的,就不需要使用滚动条了,该怎么办呢?下面我们来看看excel横排变竖排的教程