excel表中将多个工作表合成一个工作表_一个工作薄中的多个表格合并成一个
新建一个工作表,命名后保存到和与合并的N个文件同一个文件文件夹,按 alt + f11,双击sheet1(sheet1),在右侧的代码区粘贴如下代码。运行。
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = ActiveWorkbook.Name Num = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet .Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1) Next WbN = WbN & Chr(13) & Wb.Name Wb.Close False End With End If MyName = Dir Loop Range("A1").Select Application.ScreenUpdating = True MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示" End Sub
Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count IfSheets(j).Name <> ActiveSheet.Name Then X =Range("A65536").End(xlUp).Row + 1 Sheets(j).UsedRange.Copy Cells(X, 1) End If Next Range("B1").Select Application.ScreenUpdating = True MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示" End Sub
或者用这个试试
新建一个空白工作簿,按ALT+F11调出它的VBA窗口,插入一个用户模块,将下面代码粘贴进去。
Sub合并工作簿() Application.DisplayAlerts=False‘关闭提示窗口 shes=Application.SheetsInNewWorkbook‘工作簿中包含工作表数 Application.SheetsInNewWorkbook=1‘生成的新工作簿中只有一个工作表 Setnewbok=Workbooks.Add‘生成新工作簿 Setnewshe=newbok.Worksheets(1)‘新工作表 s=1‘从新工作表的第一行写入数据 na=Dir("d:\time\*.xls")‘需要合并的所有工作表都要事先保存在D盘time文件夹下 DoWhilena<>"" Setwb=Application.Workbooks.Open("d:\time\"&na) wb.Worksheets(1).UsedRange.Copy‘复制数据 newbok.Activate Cells(s,1).Select ActiveSheet.Paste‘执行粘贴 s=newshe.UsedRange.Rows.Count+1 Cells(s,1)=wb.Name‘写入数据所属的工作簿名字 s=s+1 wb.Close‘关闭工作簿 na=Dir()‘取下一个工作簿
Loop Application.SheetsInNewWorkbook=shes Application.DisplayAlerts=True Range("a1").Select EndSub
执行这个代码就能快速完成合并工作。
原文地址:http://sz1409024.blog.51cto.com/7007696/1566469