如何快速把多个excel表合并成一个excel表

如何快速把多个Excel表合并成一个excel表 。 有这么一种情况 , 就是我们有很多张excel , 而且excel表里面的公式基本一样 , 我们就想快速的把这些excel合并在一起 , 意思在合并在一个excel页面 , 这样可以方便我们分析和统计 , 其实利用excel表的宏计算就可以实现 。 下面我们就来一起解决这个问题 。
我们需要把多个excel表都放在同一个文件夹里面 , 并在这个文件夹里面新建一个excel 。 如图所示:

如何快速把多个excel表合并成一个excel表

文章插图

如何快速把多个excel表合并成一个excel表

文章插图


【如何快速把多个excel表合并成一个excel表】用microsoft excel打开新建的excel表 , 并右键单击sheet1 , 找到“查看代码” , 单击进去 。 进去之后就看到了宏计算界面 。 如图所示:

如何快速把多个excel表合并成一个excel表

文章插图

如何快速把多个excel表合并成一个excel表

文章插图

然后我们把下面这些宏计算的代码复制进去 , 然后找到工具栏上面的“运行”下的“运行子过程/用户窗体” , 代码如下 , 如图所示:

Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表 。 如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub

如何快速把多个excel表合并成一个excel表

文章插图

如何快速把多个excel表合并成一个excel表

文章插图

运行之后 , 等待10秒针左右 , 等运行完毕 , 就是合并完成之后 , 会有提示 , 点确定就可以了 。 查看合并后的数据 , 有5000多行 , 就是同一个文件夹里面17个excel表数据合并后的结果 。 效果如图所示 。

如何快速把多个excel表合并成一个excel表

文章插图

如何快速把多个excel表合并成一个excel表

文章插图


    推荐阅读