有時候,你需要將幾十個工作簿中的內容,快速匯總至合併至一個工作簿,如果手動一個複製粘貼,那心裏有苦說不出。。。
今天將大家用VBA一鍵合併,只需要幾秒種,為了測試這段代碼,我們新建了4個工作簿在文件夾中,數據都是模擬的,做試驗

一鍵合併代碼操作如下所示:

我們看原始表格數據,其中,第1個工作簿有點特殊,這個工作簿中,有兩個工作表,第1個工作表的內容是:

第2個工作表的內容是:

第2,3,4個工作簿中都是僅有1個工作表,如下所示:



通過代碼,我們一鍵可以合併,得到結果,這個匯總的結果有兩個特點
1、最後一列,還會顯示這些數據的來源是哪個工作簿,哪個表名的。
2、原始數據中每一行的標題自動取消,只保留了一個標題。
如下所示:

在Excel菜單欄中,點擊開發工具,打開VBA,輸入如下代碼:

其中代碼如下所示:
Sub 合併目錄所有工作簿全部工作表()
Dim MP, MN, AW, Wbn, wn
Dim Wb As Workbook
Dim i, a, b, d, c, e
Application.ScreenUpdating = False
MP = ActiveWorkbook.Path
MN = Dir(MP & “” & “*.xls”)
AW = ActiveWorkbook.Name
Num = 0
e = 1
Do While MN <> “”
If MN <> AW Then
Set Wb = Workbooks.Open(MP & “” & MN)
a = a + 1
With Workbooks(1).ActiveSheet
For i = 1 To Sheets.Count
If Sheets(i).Range(“a1”) <> “” Then
Wb.Sheets(i).Range(“a1”).Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)
d = Wb.Sheets(i).UsedRange.Columns.Count
c = Wb.Sheets(i).UsedRange.Rows.Count – 1
wn = Wb.Sheets(i).Name
.Cells(1, d + 1) = “表名”
.Cells(e + 1, d + 1).Resize(c, 1) = MN & wn
e = e + c
Wb.Sheets(i).Range(“a2”).Resize(c,d).Copy .Cells(.Range(“a1048576”).End(xlUp).Row + 1, 1)
End If
Next
Wbn = Wbn & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MN = Dir
Loop
Range(“a1”).Select
Application.ScreenUpdating = True
MsgBox “共合併了” & a & “個工作薄下全部工作表。如下:” & Chr(13) & Wbn, vbInformation, “提示”
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/274664.html
微信掃一掃
支付寶掃一掃