ecel合并工作簿和工作表的代码.docx
把多个工作簿合并到一个工作簿作为新工作簿的一张表(宏代码)
Sub合并当前目录下所有工作簿的全部工作表()DimMyPath,MyName,AWbName
DimWbAsWorkbook,WbNAsStringDimGAsLong
DimNumAsLongDimBOXAsString
Application.ScreenUpdating=FalseMyPath=ActiveWorkbook.PathMyName=Dir(MyPath\*.xls)AWbName=ActiveWorkbook.NameNum=0
DoWhileMyName
IfMyNameAWbNameThen
SetWb=Workbooks.Open(MyPath\MyName)Num=Num+1
WithWorkbooks(1).ActiveSheet
.Cells(.Range(A65536).End(xlUp).Row+2,1)=Left(MyName,Len(MyName)-4)ForG=1ToSheets.Count
Wb.Sheets(G).UsedRange.Copy.Cells(.Range(A65536).End(xlUp).Row+1,1)Next
WbN=WbNChr(13)Wb.NameWb.CloseFalse
EndWithEndIf
MyName=DirLoopRange(A1).Select
Application.ScreenUpdating=True
MsgBox共合并了Num个工作薄下的全部工作表。如下:Chr(13)WbN,vbInformation,提示
EndSub
具体操作:在工作簿目录下新建一工作簿,工具---宏----编辑器----插入—模块---粘贴代码==运行
excel如何将一个工作簿中的多个工作表合并到一张工作表上
打开你的工作簿新建一个工作表在这个工作表的标签上右键查看代码你把下面的代码复制到里边去,然后上面有个运行运行子程序就可以了,代码如下,如果出现问题你可以尝试工具宏宏安全性里把那个降低为中或者低再试试
Sub合并当前工作簿下的所有工作表()Application.ScreenUpdating=False
Forj=1ToSheets.Count
IfSheets(j).NameActiveSheet.NameThenX=Range(A65536).End(xlUp).Row+1Sheets(j).UsedRange.CopyCells(X,1)
EndIfNext
Range(B1).SelectApplication.ScreenUpdating=True
MsgBox当前工作簿下的全部工作表已经合并完毕!,vbInformation,提示
EndSub
把同一工作簿多张工作表合并到同一张工作表
1 新建一个工作表放在最左边,ALT+F11键打开代码框--插入--模块--复制以下代码
ALT+F8键打开,运行该代码即可
Sub合并()
ForI=2ToSheets.Count
如果工作表的第一行都一样,就把下面Rows(1 的1改成2就好了Sheets(I).Rows(1:Sheets(I).Range(A60000).End(xlUp).Row)._CopyRange(ARange(A60000).End(xlUp).Row+1)
NextEndSub
批量将多个excel中的多个工作簿合并到一个excel中
将要合并的excel放到一个文件夹中,在这个目录中新建一个excel,运行以下代码
SubCombineFiles()
Dimpath AsString
DimFileName AsString
DimLastCell AsRange
DimWkb AsWorkbook
DimWS AsWorksheet
DimThisWB AsString
DimMyDirAsString
MyDir=ThisWorkbook.path\
ChDriveLeft(MyDir,1)findalltheexcelfilesChDirMyDir
Match=Dir$()
ThisWB=ThisWorkbook.NameApplication.Enab