如何快速把多个excel表合并成一个excel表

作者:活力源 | 创建时间: 2023-05-18
很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用excel的宏计算来解决这个问题,有需要的朋友可以参考一下哦,希望能...
如何快速把多个excel表合并成一个excel表

操作方法

在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。

按Alt+F11进入VBA代码编辑和调试界面。

在工具栏中找到插入,点击插入,选择模块。

将下述代码粘贴到模块空白处: 复制代码代码如下:Sub CombineSheetsCells() 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

找到工具栏的“开发工具”,点击“插入”,找到表单控件里的窗体控件,在“首页”工作表中按下图示范插入一个窗体控件并指定宏为插入的代码名称。

点击“首页”工作表中插入的按钮,根据提示,浏览到原始数据工作簿。

用鼠标选择要合并的数据范围,点击确定按钮,合成成功。

点击展开全文

更多推荐