Cookies幫助我們提供服務。 使用我們的服務即表示您同意我們使用cookies。
提示:其他語言是Google翻譯的。 你可以訪問 English 版本。
登入
x
or
x
x
註冊
x

or

如何將多個工作簿結合到Excel中的一個工作簿?

如果您不得不在Excel中將多個工作簿合併到一個工作簿中,您是否遇到過困難? 最可怕的是,你需要合併的工作簿包含多個工作表。 任何人都可以提出一個好辦法來處理這個問題?

使用VBA將多個工作簿合併到一個工作簿

使用移動或複制命令將多個工作簿合併到一個工作簿

使用Kutools for Excel輕鬆將多個工作簿合併到一個工作簿中


輕鬆地將多個工作表/工作簿合併到一個工作表/工作簿中:

將多個工作表或工作簿合併到一個工作表或工作簿中可能是您​​日常工作中的一項重大任務。 但是,如果你有 Kutools for Excel,其強大的實用性 - 結合 可以幫助您將多個工作表,工作簿快速合併到一個工作表或工作簿中。 立即下載Kutools for Excel的全功能60天免費試用版!

Kutools for Excel:比200方便的Excel加載項,可以在60天免費試用。 下載並免費試用現在!


使用VBA將多個工作簿合併到一個工作簿

對於熟練和專業的程序員,可以使用VBA腳本將多個工作簿組合到一個主工作簿中。 您可以通過以下步驟處理這個問題:

1。 將所有要合併到同一個目錄中的工作簿。 看截圖:

2。 啟動要將其他工作簿合併到的Excel文件。

3。 點擊 開發人員 > Visual Basic中,一個新的 Microsoft Visual Basic的應用程序 窗口將會顯示,點擊 插入 > 模塊,並將以下代碼輸入到模塊中:

Sub GetSheets()
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xls")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub

小技巧: :在上面的代碼中,您可以將路徑更改為您正在使用的路徑。

4。 然後點擊 文檔合併,多工作簿按鈕 按鈕來運行代碼,工作簿中的所有工作表(包括空白工作表)已合併到主工作簿中。

注意:此VBA代碼可以將整個工作簿合併到主工作簿中,如果要合併工作簿的指定工作表,此代碼將不起作用。


使用移動或複制命令將多個工作簿合併到一個工作簿

如果您是Microsoft Excel的新手,您別無選擇,只能複制每張表的數據並將其粘貼到新的工作簿中,然後應用“移動”或“複製”命令。 使用 移動或複制 命令將幫助您將一個或多個工作表快速導出或複製到新工作簿。

1。 打開所有要合併到一個工作簿的工作簿。

2。 在選項卡欄中選擇工作簿的所有工作表名稱。 按住可以選擇多個 按Ctrl 鍵或 轉移 鍵。 右鍵單擊工作表名稱,然後單擊 移動或複制 從上下文菜單。

3. 。 In在 移動或複制 對話框中,從下拉列表中選擇要將其他工作簿合併到的主工作簿 將選定的圖紙移動到書中。 然後指定合併的工作表的位置。 查看截圖:

4。 然後點擊 OK。 所選工作表已被移至主工作簿。

5。 重複步驟從2到4將其他工作簿移到主工作簿。 然後將打開的工作簿的所有工作表合併到一個工作簿中。 查看截圖:


使用Kutools for Excel輕鬆將多個工作簿合併到一個工作簿中

幸運的是,對於Microsoft Excel的新手和新手來說,有一些可用的工具可以幫助您將數百個工作簿快速合併為一個。 功能 結合 in Kutools for Excel 使組合多個Excel文件變得更容易。 該應用程序用於釋放Excel中的重複和冗餘操作。 如果您在日常工作中必須處理大量的Excel文件,它實際上起著重要的作用。 現在,讓我們看看如何讓這個功能在組合多個工作簿中起作用。

Kutools for Excel :與超過300方便的Excel加載項, 免費試用60天無限制.

1。 啟用Excel並單擊 Kutools Plus > 結合。 然後會彈出一個對話框,提醒您所有組合的工作簿都應保存並且該功能無法應用於受保護的工作簿,請單擊 OK 按鈕。

2。 在 合併工作表 嚮導,選擇 將工作簿中的多個工作表合併到一個工作簿中,然後單擊 下一個 按鈕。 看截圖:

2。 然後你可以看到所有打開的工作簿和工作表都列在了 合併工作表 - 2的步驟3 對話框。 點擊 > 文件 / 添加其他Excel文件或文件夾,其中包含您將組合的Excel文件。 選擇文件後,單擊 下一個 按鈕繼續。 看截圖:

doc合併多個工作簿arrow1

3。 在 合併工作表 - 3的步驟3 對話框中,請執行以下設置:

  • 3.1您可以通過選擇來排除合併中的所有空白工作表 跳至 來自 遇到空白工作表時 下拉列表。
  • 3.2檢查 每張工作表的第一行(評論) 選項來插入每個組合工作表的工作表信息。
  • 3.3您可以通過在原始工作表名稱之前或之後插入工作簿名稱來重新命名新的組合工作表,或者只保留原始工作表名稱並取消選中 通過插入工作簿名稱 選項。
  • 3.4點擊 按鈕。

4。 然後選擇一個文件夾來保存組合工作簿,並根據需要直接打開它。 現在所有指定的工作簿都合併為一個。

筆記:

1。 系統會詢問您是否要保存此場景。 點擊 根據需要保存,然後輸入場景名稱(請參閱以下屏幕截圖)。 保存場景後,只需點擊即可 腳本 按鈕在step2嚮導上選擇場景的名稱以直接使用它。

2。 選定工作簿中的工作表已合併到新的工作簿中,並且如果您已經檢查了工作表,則工作表在原始工作表名稱之前或之後以工作簿名稱命名 通過插入工作簿名稱 選項。 同時,一個新的工作表名為 Kutools for Excel 在所有工作表之前生成,其中列出了每個工作表的詳細信息的工作簿。 看截圖:

3. 如果您的工作表名稱太長,可能名稱字符大於31characters,則組合名稱將不會顯示,並且只顯示原始工作表名稱。

提示。如果您想免費試用此實用程序,請轉到 免費下載軟件 首先,按照上述步驟進行操作。


Office Tab - 在Excel中選項卡式瀏覽,編輯和管理工作簿:

Office選項卡將Web瀏覽器(如Google Chrome,Internet Explorer新版本和Firefox)中顯示的選項卡界面帶到Microsoft Excel。 它將是一個節省時間的工具,在您的工作中無可比擬。 見下面的演示:

點擊免費試用Office Tab!

Excel的Office選項卡

演示:使用Kutools for Excel輕鬆將多個工作簿組合到一個工作簿中




相關文章:



推薦的生產力工具

Office Tab

金星1 帶上方便的選項卡到Excel和其他Office軟件,就像Chrome,Firefox和新的Internet Explorer一樣。

Kutools for Excel

金星1 驚人! 提高您在5分鐘的生產力。 不需要任何特殊技能,每天保存兩個小時!

金星1 300 Excel的新功能,讓Excel變得簡單而強大:

  • 合併單元格/行/列而不丟失數據。
  • 合併和合併多個工作表和工作簿。
  • 比較範圍,複製多個範圍,將文本轉換為日期,單位和貨幣轉換。
  • 按顏色計算,分頁小計,高級分類和超級篩選,
  • 更多選擇/插入/刪除/文本/格式/鏈接/評論/工作簿/工作表工具...

Excel的Kutools屏幕截圖

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Dezignext Technologies · 6 days ago
    I like using this technique better than using traditional "3D Formula" techniques in Excel.
  • To post as a guest, your comment is unpublished.
    Jonel · 1 months ago
    Note: This VBA code can merge the entire workbooks into the master workbook, if you want to combine specified worksheets of the workbooks, this code will not work.

    Can we have the module for VBA that above scene will work,
    • To post as a guest, your comment is unpublished.
      crystal · 4 days ago
      Hi Jonel,
      The following code can help you solve the problem. You need to replace folder path and "Sheet1, Sheet3" with the specified folder path and worksheets as you need.

      Sub MergeSheets2()
      Dim xStrPath As String
      Dim xStrFName As String
      Dim xWS As Worksheet
      Dim xMWS As Worksheet
      Dim xTWB As Workbook
      Dim xStrAWBName As String
      Dim xI As Integer
      On Error Resume Next

      xStrPath = " C:\Users\DT168\Desktop\KTE\"
      xStrName = "Sheet1,Sheet3"

      xArr = Split(xStrName, ",")

      Application.ScreenUpdating = False
      Application.DisplayAlerts = False
      Set xTWB = ThisWorkbook
      xStrFName = Dir(xStrPath & "*.xlsx")
      Do While Len(xStrFName) > 0
      Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
      xStrAWBName = ActiveWorkbook.Name
      For Each xWS In ActiveWorkbook.Sheets
      For xI = 0 To UBound(xArr)
      If xWS.Name = xArr(xI) Then
      xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
      Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
      xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
      Exit For
      End If
      Next xI
      Next xWS
      Workbooks(xStrAWBName).Close
      xStrFName = Dir()
      Loop
      Application.ScreenUpdating = True
      Application.DisplayAlerts = True

      End Sub
  • To post as a guest, your comment is unpublished.
    Chris · 2 months ago
    When I run this, each sheet in the new workbook is being named based off of the sheet names of the original document rather than the filenames. Any idea what I might be doing wrong?
    • To post as a guest, your comment is unpublished.
      crystal · 4 days ago
      Hi Chris,
      If you want to distinguish which worksheets in the master workbook came from where after merging, please apply the below VBA code to solve the problem.

      Sub MergeWorkbooks()
      Dim xStrPath As String
      Dim xStrFName As String
      Dim xWS As Worksheet
      Dim xMWS As Worksheet
      Dim xTWB As Workbook
      Dim xStrAWBName As String
      On Error Resume Next
      xStrPath = "C:\Users\DT168\Desktop\KTE\"
      xStrFName = Dir(xStrPath & "*.xlsx")
      Application.ScreenUpdating = False
      Application.DisplayAlerts = False
      Set xTWB = ThisWorkbook
      Do While Len(xStrFName) > 0
      Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
      xStrAWBName = ActiveWorkbook.Name
      For Each xWS In ActiveWorkbook.Sheets
      xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
      Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
      xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
      Next xWS
      Workbooks(xStrAWBName).Close
      xStrFName = Dir()
      Loop
      Application.ScreenUpdating = True
      Application.DisplayAlerts = True
      End Sub
  • To post as a guest, your comment is unpublished.
    Owen · 5 months ago
    It didnt work for me then I realized my files are .xlsx, so added the missing "x" to the Filename line.
  • To post as a guest, your comment is unpublished.
    Justin · 8 months ago
    This worked for me but I had to make sure I have to put "\" at the end of my path. Initially, I didn't have it and it wouldn't work.