excel表格,怎么样将多个设计好的表格合并到一个工作表,要求格式不要变化

excel

1个回答

写回答

miximixi

2026-01-25 23:55

+ 关注

excel
excel

新建一个表格,起个名字,保存到和那些要合并的文件同一个文件夹里。然后按 Alt + F11,找到左边工程管理器里的 Sheet1(就是代码区),双击它,把下面这段代码粘进去,然后运行一下,等一会儿就搞定了。

宏1:把当前文件夹下所有excel的sheet合并到当前表里VBASub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, AWbNameDim Wb As Workbook, WbN As StringDim G As LongDim Num As LongDim BOX As StrinGAPplication.ScreenUpdating = FalseMyPath = ActiveWorkbook.PathMyName = Dir(MyPath & & *.xls)AWbName = ActiveWorkbook.NameNum = 0Do While MyName If MyName AWbName ThenSet Wb = Workbooks.Open(MyPath & & MyName)Num = Num + 1With Workbooks(1).ActiveSheet.Cells(.Range(A65536).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)For G = 1 To Sheets.CountWb.Sheets(G).UsedRange.Copy .Cells(.Range(A65536).End(xlUp).Row + 1, 1)NextWbN = WbN & Chr(13) & Wb.NameWb.Close FalseEnd WithEnd IfMyName = DirLoopRange(A1).SelectApplication.ScreenUpdating = TrueMsgBox 共合并了 & Num & 个工作薄下的全部工作表。如下: & Chr(13) & WbN, vbInformation, 提示End Sub

宏2:多个文件合并成一个文件,每个文件一个sheetVBASub CombineWorkbooks()Dim FilesToOpen, ftDim x As IntegerApplication.ScreenUpdating = FalSEOn Error GoTo errhandlerFilesToOpen = Application.GetOpenFilename _(FileFilter:=Microsoft excel文件(*.xls), *.xls, _MultiSelect:=True, Title:=要合并的文件)If TypeName(FilesToOpen) = Boolean ThenMsgBox 没有选中文件Exit SubEnd Ifx = 1Workbooks.Open Filename:=FilesToOpen(1)Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)For i = 2 To UBound(FilesToOpen)Set wb = Workbooks.Open(Filename:=FilesToOpen(i))For Each ws In wb.Sheetsws.Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)Next wswb.CloseNext iApplication.ScreenUpdating = TrueMsgBox 合并完成!, vbInformation, 提示Exit SUberrhandler:MsgBox 出错了,检查一下文件有没有问题, vbCritical, 错误End Sub

VBA
VBA

有啥不懂的再问,这个方法亲测能用,效率起飞?

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号