Note: The other languages of the website are Google-translated. Back to English

如何將工作表或工作簿合併或合併為一個工作表?

在我們的日常工作中,我們可能會遇到將數百張工作表或工作簿合併為一張工作表以分析數據的問題,如果您在Excel中使用“複製和粘貼”命令,則該過程將花費大量時間。 在本教程的此處,我將提供一些快速解決此工作的技巧。

doc合併1

快速導航

使用VBA將活動工作簿的所有工作表合併為一個工作表
單擊將數十個工作表或工作簿合併到一個工作表/工作簿中
將兩個表合併為一個,並通過單擊按列更新
下載樣本文件


使用VBA將活動工作簿的所有工作表合併為一個工作表

在本節中,我提供一個VBA代碼,該代碼將創建一個新工作表,以在運行時收集活動工作簿的所有工作表。

1.激活要合併其所有工作表的工作簿,然後按 + 打開鑰匙 Microsoft Visual Basic for Applications 窗口。

2.在彈出的窗口中,單擊 插入 > 模塊 創建一個新的模塊腳本。

3.複製以下代碼並將其粘貼到腳本中。

Sub Combine()
'UpdatebyExtendoffice
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
doc合併2

4。 按 F5 鍵,則工作表中的所有數據都已合併到名為“合併”的新工作表中,該新工作表位於所有工作表的前面。


其他

您想加薪並有很多時間陪伴家人嗎?

Office選項卡可將Microsoft Office立即工作的效率提高50%

令人難以置信的是,處理兩個或多個文檔比處理一個或多個文檔更容易,更快捷。

與知名瀏覽器相比,Office Tab中的選項卡式工具功能更強大,更高效。

每天為您減少數百次鼠標單擊和鍵盤輸入,現在告別鼠標手。

如果您通常處理多個文檔,Office Tab將為您節省大量時間。

30-天免費試用,無需信用卡。

閱讀更多現在免費下載


單擊將數十個工作表或工作簿合併到一個工作表/工作簿中

使用VBA,您只能在活動工作簿中合併工作表,但是如何將工作簿中的工作表合併到工作表或工作簿中?

將工作簿中的工作表合併為一張工作表
doc合併18

將工作簿中的工作表合併到一個工作簿中
doc合併3

為了解決這項工作並滿足對紙張組合的其他要求, 結合 功能已通過以下四種組合方案開發:

  • 將多張工作表或工作簿合併為一張
  • 將多個工作表或工作簿合併為一個工作簿
  • 將相同的姓名表合併為一張
  • 將工作表或工作簿中的值合併為一張工作表

這里以第二個選項為例:

將多個工作表或工作簿合併為一個工作簿

免費安裝 Kutools for Excel,請執行以下操作:

1.激活Excel,單擊 Kutools 加 > 結合,會彈出一個對話框,提醒您要合併的工作簿需要關閉。 請點擊 OK 以繼續。
doc合併4
doc合併5

2。 在裡面 合併工作表步驟1 對話框,檢查 將工作簿中的多個工作表合併到一個工作簿中 選項。 點擊 下一頁 轉到嚮導的下一步。
doc合併6

3。 點擊 加入 > 文件 or 將您要合併的工作簿添加到 工作簿清單 窗格,然後您可以通過檢查名稱來指定將哪些工作表連接在一起 工作表清單 窗格。 請點擊 下一頁 轉到嚮導的最後一步。
doc合併7

4.在此步驟中,根據需要指定設置。 然後點擊 .
doc合併8

5.彈出一個窗口,供您選擇一個文件夾以放置組合的工作簿,然後單擊 節省.
doc合併9

現在,工作簿已合併到一個工作簿中。 並且在所有工作表的最前面,還創建了一個名為Kutools for Excel的主工作表,其中列出了有關工作表的一些信息以及每個工作表的鏈接。
doc合併10

演示:將工作表/工作簿合併為一個工作表或工作簿

Kutools for Excel:200 +有用的便捷工具,只需單擊幾下即可簡化Excel中的複雜任務。

告別鼠標手和頸椎病

300個高級工具 Kutools for Excel 解決 80% 數秒內完成 Excel 任務,讓您擺脫數千次鼠標點擊。

輕鬆應對1500個工作場景,無需浪費時間尋找解決方案,有更多時間享受生活。

每天為 80+ 高效能人士提高 110000% 的生產力,當然也包括你。

不再被痛苦的公式和VBA折磨,給你的大腦一個休息和快樂的工作心情。

30- 全功能免費試用一天, 30- 無理由退款。

更好的身體創造更好的生活。


將兩個表合併為一個,並通過單擊按列更新

如果您想將兩個表合併為一個表並根據一列更新數據,如下面的屏幕截圖所示,可以嘗試 表格合併 的效用 Excel的Kutools.
doc合併11

Kutools for Excel:超過200個方便的Excel加載項,可將復雜的任務簡化為在Excel中的幾次單擊

免費安裝 Kutools for Excel,請執行以下操作:

1。 點擊 Kutools 加 > 表格合併 啟用 表格合併 嚮導。
doc合併12

2.在嚮導的步驟1中,您需要分別選擇主表和查找表範圍。 然後點擊 下一頁 .
doc合併13

3.在主表上檢查要更新數據的鍵列。 請點擊 下一頁 .
doc合併14

4.然後檢查您要基於查找表更新數據的主表中的列。 請點擊 下一頁 .
doc合併15

5.在嚮導的步驟4中,檢查要從查找表添加到主表的列。 請點擊 下一頁 .
doc合併16

6.在嚮導的最後一步,根據需要指定設置選項。 然後點擊 .
doc合併17

現在,主表已更新數據並基於查找表添加新數據。

演示:將工作表/工作簿合併為一個工作表或工作簿

Kutools for Excel:200 +有用的便捷工具,只需單擊幾下即可簡化Excel中的複雜任務。


下載樣本文件

樣品


推薦的生產力工具

Office選項卡-Microsoft Office 2019-2003和Office 365中的選項卡式瀏覽,編輯,文檔管理


辦公室標籤

一個用於加速Excel 2019-2007的專業加載項,可將小時任務縮減為幾秒鐘

此外接程序包括數十個專業組,具有300多個選項,可以自動執行Excel中的大多數日常任務,並至少使生產率提高50%。 例如一組一鍵式opton和批量轉換。
現在,您可以使用Kutools for Excel加快自己的速度!


按評論排序
留言 (168)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
使用了您的第一個宏功能。 哇! 感謝發帖
網站主持人對此評論進行了最小化
我認為代碼'selection.offset(0,0).resize(selection.Rows.Count -1)。選擇' 必須不在那裡。 就我而言,它所做的是從第二行開始選擇缺少第一行。
網站主持人對此評論進行了最小化
我也有同樣的問題。 它省略了添加的第二個工作表的第一行。
網站主持人對此評論進行了最小化
消除標題,因此您沒有重複的標題
網站主持人對此評論進行了最小化
像魅力一樣工作,謝謝分享!
網站主持人對此評論進行了最小化
謝謝! 宏運行良好。
網站主持人對此評論進行了最小化
我不知道如何在excel中使用VBN功能,請您幫忙。
網站主持人對此評論進行了最小化
很好,謝謝!!! 非常非常有用
網站主持人對此評論進行了最小化
宏一工作正常。 謝謝!! 這很棒!!!! :)
網站主持人對此評論進行了最小化
請注意,這受到 65k 行限制的限制,如果您需要向上行 Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) 範圍來解決問題。
網站主持人對此評論進行了最小化
然而,很棒的工具,它並沒有結合所有 21 張紙。 如何擴大範圍?
網站主持人對此評論進行了最小化
筆記!!! 您需要小心宏。如果您的數據具有連續的信息流並且沒有空白行,它將起作用。 這就是“Selection.CurrentRegion.Select”行的作用。 例如,如果您需要復制電子表格上的所有數據,但(假設)第 200 行有一個空行,則宏只會向下複製到第 200 行; 它會忽略該行下面的所有數據!!!
網站主持人對此評論進行了最小化
有誰知道避免這個問題的命令? Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select 的問題可以解決嗎? Selection.Rows.Count - 1) 是引發問題的命令。 任何人??
網站主持人對此評論進行了最小化
與其從上往下走,不如從下往上走
網站主持人對此評論進行了最小化
有誰知道解決空行和空列問題的代碼? 我的數據中有它,但沒有像自下而上那樣簡單的解決方案? 謝謝!
網站主持人對此評論進行了最小化
對於刪除空行:選項 1:選擇 A 列中需要刪除的單元格。 使用 Ctrl - 然後在彈出窗口中選擇整行。 保存工作簿並退出。 然後打開工作簿。 選項 2:選擇需要刪除的行。 使用 Ctrl -。 保存工作簿並退出打開的工作簿。 給出選項 1,以便您可以看到正在發生的事情。 刪除空列:選擇列。 Ctrl -。 保存工作簿並退出打開的工作簿。
網站主持人對此評論進行了最小化
我們有什麼解決方案可以復制空白單元格下方的數據嗎?
網站主持人對此評論進行了最小化
謝謝 ! 我的第二排所有床單都是空的,我很困惑。
網站主持人對此評論進行了最小化
vba 代碼效果很好,但我需要更新組合的工作表,因為我將新行或新數據添加到我正在組合的工作表中的單元格。 有沒有辦法做到這一點? 感謝您的幫助。
網站主持人對此評論進行了最小化
宏代碼對於第一個組合工作表非常有效,但是當我將數據添加到我正在組合的現有工作表時,我需要更新組合工作表。 有沒有辦法做到這一點?
網站主持人對此評論進行了最小化
當您將行添加到其他工作表時,您有沒有想過如何讓它在 master 中更新?
網站主持人對此評論進行了最小化
出色的工作.. 這已將我的工作時間從 2 小時減少到 10 分鐘。
網站主持人對此評論進行了最小化
太好了,我使用了第一個宏和 Kutools,兩者都極大地減少了我的數據收集和編譯工作。 感謝分享。
網站主持人對此評論進行了最小化
我剛剛刪除了下面給出的部分,現在它只更新了。 希望這會有所幫助... Sheets(1).Select Worksheets.Add
網站主持人對此評論進行了最小化
代碼效果很好! 我需要宏來複製工作表上的所有數據。 它正在切斷工作表 1 之後的第一行。只有工作表一個具有標題行,其他工作表只是數據。 這可能嗎?
網站主持人對此評論進行了最小化
我對“使用 VBA 代碼將所有工作表合併到一個工作表”有疑問:代碼工作得很好,但只有當它為空時,它才會添加標題,是否可以修改代碼以說不合併空工作表?
網站主持人對此評論進行了最小化
謝謝你為我節省了一個小時的複制和粘貼時間:D
網站主持人對此評論進行了最小化
有兩個工作簿,相同的數據,但第二個有額外的數據,並且一些數據已更新,inv# Status 123 7/2 open inv# status 123 7/2 open 7/7 closed 如何合併到一個中刪除或突出顯示重複並添加任何新的 inv# 不在第一個
網站主持人對此評論進行了最小化
如果您的 A 列非 = 空白,則效果很好。 在 A 列空白的工作表上,它似乎被覆蓋了。 在我的 dtaa 列中,E 在所有工作表上都是非空白的。 如何修改複製目標以考慮某些工作表上的空白列 A?
網站主持人對此評論進行了最小化
Sub CopySheet() ' ' CopySheet Macro ' ' Dim i As Integer For i = 2 To 25 Sheets("Sheet1").Select Range("A1").Select Selection.End(xlDown).Select Range("A" & CStr(Selection.Row) + 1).Select Sheets("Sheet" & CStr(i)).Select Range("A2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection .End(xlToRight)).Select Selection.Cut Sheets("Sheet1").Select ActiveSheet.Paste Next End Sub
網站主持人對此評論進行了最小化
Range("A:A").SpecialCells(xlCellTypeLastCell).Select ActiveCell.Offset(1, 0).Select '使用此代碼選擇“A”列中的最後一個單元格 [quote] Sub CopySheet() ' ' CopySheet Macro ' ' Dim i As Integer For i = 2 To 25 Sheets("Sheet1").Select Range("A1").Select Selection.End(xlDown).Select Range("A" & CStr(Selection.Row) + 1) .Select Sheets("Sheet" & CStr(i)).Select Range("A2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection .Cut Sheets("Sheet1").Select ActiveSheet.Paste Next End Sub由克洛佩茲[/ quote]
網站主持人對此評論進行了最小化
宏代碼工作得很好...... FAB Job :-)
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護