
使用方法:把需要合并的工作薄放到同一个文件夹中,在文件夹中新建一个工作薄(要把所有文件合并到此工作簿中)在该工作薄中表1标签单击鼠标右键—查看代码(或按ALT+F11),在弹出的VBA代码窗口中粘贴如下代码:。之后回到新建的工作薄中在视图选项下单击宏(2007版的,别的版本请找的宏按钮即可),之后双击“合并当前目录下所有工作簿的全部工作表”即可全部合并到此工作薄同一工作表中了。
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("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
二、合并多个工作薄到同一个工作薄的不同工作表中
使用方法:把需要合并的工作薄放到同一个文件夹中,在文件夹中新建一个工作薄这里取名叫“合并工作薄”(要把所有文件合并到此工作簿中)在该工作薄中表1标签单击鼠标右键—查看代码(或按ALT+F11),在弹出的VBA代码窗口中粘贴如下代码:。之后回到新建的工作薄中在视图选项下单击宏(2007版的,别的版本请找的宏按钮即可),之后双击“工作薄间工作表合并”即可全部合并到此工作薄不同工作表中了。
Sub 工作薄间工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
errhadler:
MsgBox Err.Description
End Sub
