搜索你感兴趣的问题
如何快速把多个excel表合并成一个excel表
我的未来我做主 2024-06-01 12:12:27
推荐回答
我的未来我做主 2024-06-07 10:13:34

很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用excel的宏计算来解决这个问题,有需要的朋友可以参考一下哦,希望能对大家有所帮助。

操作方法

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

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

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

将下述代码粘贴到模块空白处:复制代码代码如下:Sub CombineSheetsCells()Dim wsNewWorksheet As WorksheetDim cel As RangeDim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As VariantDim TitleRow, TitleColumn As RangeDim Num As IntegerDim DataRows As LongDataRows = 1Dim TitleArr()Dim ChoiceDim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$Dim n, in = 1i = 1Application.DisplayAlerts = FalseWorksheets("合并汇总表").DeleteSet wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))wsNewWorksheet.Name = "合并汇总表"MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")If MyFileName = "False" ThenMsgBox "没有选择文件!请重新选择一个被合并文件!" vbInformation, "取消"ElseWorkbooks.Open Filename:=MyFileNameNum = ActiveWorkbook.Sheets.CountMyName = ActiveWorkbook.NameSet DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:" Type:=8)AddressAll = DataSource.AddressActiveWorkbook.ActiveSheet.Range(AddressAll).SelectSourceDataRows = Selection.Rows.CountSourceDataColumns = Selection.Columns.CountApplication.ScreenUpdating = FalseApplication.EnableEvents = FalseFor i = 1 To NumActiveWorkbook.Sheets(i).ActivateActiveWorkbook.Sheets(i).Range(AddressAll).SelectSelection.CopyActiveSheetName = ActiveWorkbook.ActiveSheet.NameWorkbooks(ThisWorkbook.Name).ActivateActiveWorkbook.Sheets("合并汇总表").SelectActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetNameActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).SelectSelection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _SkipBlanks:=False, Transpose:=FalseSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _False, Transpose:=FalseSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseDataRows = DataRows + SourceDataRowsWorkbooks(MyName).ActivateNext iApplication.ScreenUpdating = TrueApplication.EnableEvents = TrueEnd IfWorkbooks(MyName).CloseEnd Sub

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

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

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

大家都关注
有问题 @爱问
Powered by iask.com