1. 首页
  2. 办公
  3. Office

怎么利用VBA代码对excel 工作表进行快速合并

请看下面的截图:这个文件夹里还有很多个excel工作薄,每个工作薄文件又更多不同张数的工作表。例如有的文件有一张工作,有的文件又多很张工作表。

怎么才能把这么多个文件快速合并到同一个工作表呢。

合并工作表

通常的做法,通过“移动或复制”实现合并工作表。要高效,可以使用VBA代码来实现合并工作表。

  合并工作表操作步骤:

新建一个excel文件,按ALT F11,打开VBE编辑器,复制下面的代码,然后运行,选择文件夹下面的所有excel文件,执行合并工作表。

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。

原创文章,作者:baidouya,如若转载,请注明出处:http://www.baidouya.com/20200329-4247.html