使用VBA合并多个Excel工作簿(1)
有时,需要将多个Excel工作簿中的工作表合并到一个工作簿中。有多种合并工作簿的情形,下面先给出一种合并多个工作簿的VBA范例,供参考。
例如,需要合并的工作簿在“D:\示例\数据记录\”文件夹中,这里假设有两个工作簿test1.xls、test2.xls(当然,不限于两个),test1.xls工作簿中含有三张工作表,test2.xls工作簿中含有两张工作表,现在使用一段VBA代码合并这两个工作簿到一个新工作簿中。先给出代码如下:
Sub CombineWorkbooks()
Dim strFileName As String
Dim wb As Workbook
Dim ws As Object
‘包含工作簿的文件夹,可根据实际修改
Const strFileDir As String = “D:\示例\数据记录\”
Application.ScreenUpdating = False
Set wb = Workbooks.Add(xlWorksheet)
strFileName = Dir(strFileDir & “*.xls”)
Do While strFileName <> vbNullString
Dim wbOrig As Workbook
Set wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)
strFileName = Left(Left(strFileName, Len(strFileName) - 4), 29)
For Each ws In wbOrig.Sheets
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
If wbOrig.Sheets.Count > 1 Then
wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.Index
Else
wb.Sheets(wb.Sheets.Count).Name = strFileName
End If
Next
wbOrig.Close SaveChanges:=False
strFileName = Dir
Loop
Application.DisplayAlerts = False
wb.Sheets(1).Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
结果如下图所示:

合并到新工作簿中的工作表分别以原工作簿名加索引值命名。
示例下载:合并工作簿示例
将示例解压后放置到D盘中,或者修改代码中的文件路径以代表文件夹的位置。

呵呵,帮你PP顶!也请来鬼故事看看……
呵呵,帮你PP顶!也请来童话故事看看……