快速将多个工作簿合并到一张工作表作者原著,尊重成果,侵权必究一、应用场景我们很多时候,导出数十份excel格式,文本格式的文档;这些文档的格式一致,我们需要将它们合并到一张工作表中,而且合并后不会重复表头。通常要一张张打开,复制,耗时耗力。利用vba代码将可以一键实现将多份文件,一秒钟快速合并到一张工作表中。二、示例1.要求:需要该工作簿的所有表格,单独保存为工作簿2.做法:利用vba代码,实现一键将多份工作簿,合并到一张工作表内,并在最后一列说明工作表的名称,以作标识需要这些工作簿合并到一张工作表中(格式相同)新建一份要合并到的工作簿,点击自定义宏中“合并文件”按钮输入要合并文件的路径实现合并三、重点:vba源代码如下(具有通用性)Sub合并文件需新建()OnErrorResumeNextDimMyPath,MyNameDimWbAsWorkbook,WbNAsStringDimGAsLong,NumAsLong,i,jApplication.ScreenUpdating=FalseMyPath=InputBox(请输入要合并的文件路径)gs=InputBox(请输入文件格式,如:xls)IfMyPathAndgsThenMyName=Dir(MyPath&\&*.&gs&*)'注意修改文件格式Num=0SetWb=Workbooks.Open(MyPath&\&MyName)ForG=1ToSheets.CountWb.Sheets(G).UsedRange.CopyWorkbooks(1).Sheets(1).Cells(Workbooks(1)._Sheets(1).Range(B1048576).End(xlUp).Row,1)NextMyName=DirDoWhileMyNameSetWb=Workbooks.Open(MyPath&\&MyName)Num=Num+1ForG=1ToSheets.Counti=Wb.Sheets(G).Range(B1048576).End(xlUp).Rowj=Wb.Sheets(G).Cells(1,16384).End(xlToLeft).Column'不复制表头Wb.Sheets(G).Range(Cells(2,1),Cells(i,j)).CopyWorkbooks(1).Sheets(1)_.Cells(Workbooks(1).Sheets(1).Range(B1048576).End(xlUp).Row+1,1)NextWbN=WbN&Chr(13)&Wb.nameWb.CloseMyName=DirLoopWorkbooks(1).Sheets(1).ActivateActiveSheet.Range(a1).Select输入要合并的格式Selection.AutoFilterActiveSheet.Range(a2).SelectActiveWindow.FreezePanes=TrueApplication.DisplayAlerts=FalseWorkbooks(1).SaveApplication.DisplayAlerts=TrueApplication.ScreenUpdating=TrueMsgBox共合并了&Num&个工作薄下的全部工作表。如下:&Chr(13)&WbN,vbInformation,提示EndIfEndSub四、使用说明注意格式一致,合并后不会重复表头;如何将vba代码以自定义宏的方式,集成到excel选项卡中,请自行百度学习。或者,在购买后,联系微信号:risklin咨询。