微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
请问如何把同一文件夹的所有工作簿合并到一个文件里,每个工作簿成为一个工作表
前面讲过了一个文件里【多个sheet拆分成为多个单独文件】的方法,这里再讲一讲逆向操作,就是我们要把多个只有一张sheet的文件,合并成一个文件里多个sheet的样子,如下图所示


要完成上述效果,如果用手工,有几十上百的表的话 还是挺费劲,不过还好咱们有万能的Excel神器-VBA,我用VBA写了一个小工具 ,可以非常快速的完成这种操作
VBA教程请点击 https://item.taobao.com/item.htm?id=597656284129
Private Sub bookMerge(path)
' "本工具将组合当前目录下所有工作簿的第一个表到一个新文件中"
'*****http://excel880.com/
Dim fs, f, f1, fc, s
Dim wk As Workbook, sht As Worksheet
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(path)
Set fc = f.Files
Set targetWk = Workbooks.Add
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.path & "\组合.xlsx"
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For Each f1 In fc '遍历文件夹文件
If f1.Name <> ThisWorkbook.Name And f1.Name Like "*.xls*" And f1.Name <> "组合.xlsx" Then
Set wk = Workbooks.Open(path & "\" & f1.Name) '打开工作簿
Set sht = wk.ActiveSheet
If ThisWorkbook.Sheets("x").Range("B2") = 1 Then
sht.Name = Mid(wk.Name, 1, InStrRev(wk.Name, ".") - 1)
End If '改sheet名同文件名
sht.Copy After:=Workbooks("组合.xlsx").ActiveSheet
wk.Close
End If
Next
targetWk.Save
Application.DisplayAlerts = True
Application.ScreenUpdating = True
'ThisWorkbook.Close SaveChanges:=True
'MsgBox s
End Sub
Public Sub 多表合一()
MsgBox "欢迎使用多表合一工具1.0" & Chr(13) & "made by Excel880 QQ80871835" & Chr(13) _
& "本工具将组合当前目录下所有工作簿的第一个表到一个新文件中"
bookMerge ThisWorkbook.Sheets("x").Range("B1")
End Sub




