Excel---如何快速的合并多個(gè) Excel 工作簿至一個(gè)工作簿中的工作表?

前言

在日常工作過(guò)程中,我們有可能需要把多個(gè)Excel工作簿的內(nèi)容匯總到一張Excel工作表中。如果通過(guò)復(fù)制粘貼的方式也并不是不可行,只是會(huì)浪費(fèi)大量的時(shí)間和人力。在這樣的情況下,我們一起討論一種可以比較方便和快捷的進(jìn)行多個(gè)工作簿合并成一個(gè)工作表的工作。這樣我們可以分成兩步去操作:首先:多個(gè)工作簿合并到一個(gè)“匯總工作簿”;其次:將這個(gè)“匯總工作簿”中的工作表進(jìn)行合并,合并成一個(gè)工作表


第一步:多個(gè)工作簿合并到一個(gè)工作簿

在由多個(gè)工作簿合并到一個(gè)工作表之前,我們先把多個(gè)工作簿合并到一個(gè)工作簿。

1、新建一個(gè)工作薄,將其命名為合并后的名字,例如叫做:匯總工作簿。
2、打開此工作簿:“匯總工作簿”
3、在“匯總工作簿”下任一個(gè)工作表標(biāo)簽上點(diǎn)擊右鍵,選擇“查看代碼”。


查看代碼.png

4、在打開的VBA編輯窗口中粘貼以下代碼:

Sub 工作薄間工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(.xlsx),.xlsx", 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、關(guān)閉該VBA編輯窗口
6、在Excel中,開發(fā)工具---宏,選“工作薄間工作表合并”,然后“執(zhí)行”。


開發(fā)工具-宏.png
執(zhí)行“工作薄間工作表合并”.png

7、在打開的對(duì)話窗口中,選擇你要合并的多個(gè)工作薄。
8、等待運(yùn)行。而后就OK了。
9、打開名為“匯總工作簿”的Excel文件,我們就能看到多個(gè)其他工作簿以多個(gè)Sheet頁(yè)的形式合并到了這一個(gè)工作簿中。

第二步:多個(gè)工作表合成一個(gè)工作表

在“匯總工作簿”工作簿中,有很多個(gè)Sheet頁(yè),我們的最終目的是把這多個(gè)Sheet頁(yè)合并到一個(gè)Sheet頁(yè)的多行。其操作辦法如下:
1、在“匯總工作簿”中,新建一個(gè)sheet頁(yè)。
2、在新建的sheet標(biāo)簽上單擊右鍵,選擇“查看代碼”
3、在打開的VBA編輯窗口中粘貼以下代碼:

Sub 合并當(dāng)前工作簿下的所有工作表()
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 "當(dāng)前工作簿下的全部工作表已經(jīng)合并完畢!", vbInformation, "提示"
End Sub

4、關(guān)閉該VBA編輯窗口
5、在Excel中,開發(fā)工具---宏,選“合并當(dāng)前工作簿下的所有工作表”,然后“執(zhí)行”。


合并當(dāng)前工作簿下的所有工作表.png

6、等待運(yùn)行,而后就OK了。


結(jié)語(yǔ)

我們上面提到的是如何使用VBA來(lái)實(shí)現(xiàn)多個(gè)工作簿合成一個(gè)工作簿以及一個(gè)工作簿中的多個(gè)工作表按行合并。
上面的方法是在知乎上摘錄的,
提姆葉提供了工作簿的合并;
Anson提供了同一個(gè)工作簿中的工作表按行合并的方法。
另外,我還在知乎上看到一個(gè)辦法,就是雷公子提供的用PowerQuery動(dòng)態(tài)匯總文件夾下的多個(gè)Excel文件。鏈接如下:https://zhuanlan.zhihu.com/p/26164792 。但是由于我個(gè)人并沒有嘗試過(guò)使用PowerQuery去進(jìn)行合并,所以并不清楚這個(gè)效果如何。
總之這里是一個(gè)解決方法的匯總,如果有和我一樣有類似需求的小伙伴,可以嘗試用這邊的方法去解決這個(gè)問(wèn)題。
以上~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本例為設(shè)置密碼窗口 (1) If Application.InputBox(“請(qǐng)輸入密碼:”) = 1234 Th...
    浮浮塵塵閱讀 14,655評(píng)論 1 20
  • 自從2014年開通[完美Excel]微信公眾號(hào)以來(lái),堅(jiān)持分享已經(jīng)學(xué)習(xí)到的Excel和VBA知識(shí)和心得,目前已分享文...
    完美Excel閱讀 8,451評(píng)論 6 69
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿挑戰(zhàn)性的領(lǐng)域.對(duì)每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 22,136評(píng)論 6 49
  • 曾經(jīng)有一個(gè)問(wèn)題困擾了姐姐很長(zhǎng)很長(zhǎng)時(shí)間,那就是如何快速的將一個(gè)Excel匯總表拆分成多個(gè)工作表! 例如:集團(tuán)公司下設(shè)...
    罌粟姐姐閱讀 9,299評(píng)論 8 73
  • VBA訂制工具欄 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴寫字的地方閱讀 2,350評(píng)論 0 0

友情鏈接更多精彩內(nèi)容