如何快速把多個(gè)excel表合并成一個(gè)excel表
如何快速把多個(gè)excel表合并成一個(gè)excel表
有這么一種情況,就是我們有很多張excel,而且excel表里面的公式基本一樣,我們就想快速的把這些excel合并在一起,意思在合并在一個(gè)excel頁(yè)面,這樣可以方便我們分析和統(tǒng)計(jì),其實(shí)利用excel表的宏計(jì)算就可以實(shí)現(xiàn)。下面我們就來(lái)一起解決這個(gè)問題。
把多個(gè)excel表合并成一個(gè)excel表的方法
我們需要把多個(gè)excel表都放在同一個(gè)文件夾里面,并在這個(gè)文件夾里面新建一個(gè)excel。如圖所示:
把多個(gè)excel表合并成一個(gè)excel表的方法圖1
把多個(gè)excel表合并成一個(gè)excel表的方法圖2
用microsoft excel打開新建的excel表,并右鍵單擊sheet1,找到“查看代碼”,單擊進(jìn)去。進(jìn)去之后就看到了宏計(jì)算界面。如圖所示:
把多個(gè)excel表合并成一個(gè)excel表的方法圖3
把多個(gè)excel表合并成一個(gè)excel表的方法圖4
然后我們把下面這些宏計(jì)算的代碼復(fù)制進(jìn)去,然后找到工具欄上面的“運(yùn)行”下的“運(yùn)行子過程/用戶窗體”,代碼如下,如圖所示:
Sub 合并當(dāng)前目錄下所有工作簿的全部工作表()
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 & "個(gè)工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
把多個(gè)excel表合并成一個(gè)excel表的方法圖5
把多個(gè)excel表合并成一個(gè)excel表的方法圖6
運(yùn)行之后,等待10秒針左右,等運(yùn)行完畢,就是合并完成之后,會(huì)有提示,點(diǎn)確定就可以了。查看合并后的數(shù)據(jù),有5000多行,就是同一個(gè)文件夾里面17個(gè)excel表數(shù)據(jù)合并后的結(jié)果。效果如圖所示。