文章介紹合并工作表的方法,用VBA代碼實現合并工作表。
下圖所示:一個文件夾下面有多個excel工作薄,每個工作薄文件下面有不固定張數的工作表。比如有的文件只有一張工作,有的文件是多張工作表。
現在的問題,如何將這些多個文件實現合并工作表。將這些所有工作表全部合并到同一張工作表。
一般的做法,通過“移動或復制”實現合并工作表。要高效,可以使用VBA代碼來實現合并工作表。
合并工作表操作步驟:
新建一個excel文件,按ALT+F11,打開VBE編輯器,復制下面的代碼,然后運行,選擇文件夾下面的所有excel文件,執行合并工作表。
Sub 合并工作簿()
Dim FilesToOpen, wb As Workbook, sht As Worksheet
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
If FilesToOpen(x) <> ThisWorkbook.FullName Then
Set wb = Workbooks.Open(Filename:=FilesToOpen(x))
For Each sht In wb.Sheets
sht.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next
wb.Close
End If
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
說明:上面代碼是合并xlsx文件,如果是合并excel2003的文件,需要將:FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx",xlsx改為.xls。