如何快速的合并多个 Excel 工作簿成为一个工作簿?

晚上试了一下,楼主的方法可行,谢谢。 补充一点,如果是 2007版本,把 代码中的 xls 修改为 xlsx就可以了。
关注者
798
被浏览
377042

28 个回答

2016-05-15更新:如果是excel2007及更新的版本,则需要把代码中的xls修改为xlsx即可,祝大家成功!
------------------------------------------------------------------------------------------------------------------------
没人给直接答案,那我自问自答了。
的确去百度了下,出现了很多种方法,但是,目前就这个方法行得通,跟大家分享下:
用一个VBA就可以实现的。
使用方法:
1、新建一个工作薄,将其命名为你合并后的名字。
2、打开此工作薄。
3、在其下任一个工作表标签上点击右键,选择“查看代码”。
4、在打开的VBA编辑窗口中粘贴以下代码:
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

5、关闭VBA编辑窗口。
6、在excel中,工具---宏---宏,选“工作薄间工作表合并”,然后“执行”。
7、在打开的对话窗口中,选择你要合并的300个工作薄。
8、等待。。。。ok!
来源:zhidao.baidu.com/questi
最高票回答是把多个工作簿合并成一个工作簿中的多个sheet,看到有朋友需要进一步合并成一个sheet中的多行。现补充分享如下:
使用方法:
1、在包含多个sheet的工作簿中(如多个工作簿合并后含n个sheet的工作簿),新建一个sheet
2、在新建的sheet标签上点击右键,选择“查看代码”
3、在打开的VBA编辑窗口中粘贴以下代码:

Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

If Sheets(j).Name <> ActiveSheet.Name Then

X = Range("A65536").End(xlUp).Row + 1

Sheets(j).UsedRange.Copy Cells(X, 1)

End If

Next

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub


运行即可。