欢迎来到天天文库
浏览记录
ID:48022100
大小:327.77 KB
页数:3页
时间:2020-01-26
《Excel高效办公VBA代码-快速将多个工作簿合并到一张工作表.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、快速将多个工作簿合并到一张工作表作者原著,尊重成果,侵权必究一、应用场景我们很多时候,导出数十份excel格式,文本格式的文档;这些文档的格式一致,我们需要将它们合并到一张工作表中,而且合并后不会重复表头。通常要一张张打开,复制,耗时耗力。利用vba代码将可以一键实现将多份文件,一秒钟快速合并到一张工作表中。二、示例1.要求:需要该工作簿的所有表格,单独保存为工作簿需要这些工作簿合并到一张工作表中(格式相同)2.做法:利用vba代码,实现一键将多份工作簿,合并到一张工作表内,并在最后一列说明工作表的名称,以作标识新建
2、一份要合并到的工作簿,点击自定义宏中“合并文件”按钮输入要合并文件的路径输入要合并的格式实现合并三、重点:vba源代码如下(具有通用性)Sub合并文件需新建()OnErrorResumeNextDimMyPath,MyNameDimWbAsWorkbook,WbNAsStringDimGAsLong,NumAsLong,i,jApplication.ScreenUpdating=FalseMyPath=InputBox("请输入要合并的文件路径")gs=InputBox("请输入文件格式,如:xls")IfMyPat
3、h<>""Andgs<>""ThenMyName=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=DirDoWhileM
4、yName<>""SetWb=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(Workbo
5、oks(1).Sheets(1).Range("B1048576").End(xlUp).Row+1,1)NextWbN=WbN&Chr(13)&Wb.nameWb.CloseMyName=DirLoopWorkbooks(1).Sheets(1).ActivateActiveSheet.Range("a1").SelectSelection.AutoFilterActiveSheet.Range("a2").SelectActiveWindow.FreezePanes=TrueApplication.Display
6、Alerts=FalseWorkbooks(1).SaveApplication.DisplayAlerts=TrueApplication.ScreenUpdating=TrueMsgBox"共合并了"&Num&"个工作薄下的全部工作表。如下:"&Chr(13)&WbN,vbInformation,"提示"EndIfEndSub四、使用说明注意格式一致,合并后不会重复表头;如何将vba代码以自定义宏的方式,集成到excel选项卡中,请自行百度学习。或者,在购买后,联系微信号:risklin咨询。
此文档下载收益归作者所有