首頁 > 軟體

怎麼將多個Excel工作簿合併成一個新的工作簿

2019-12-07 14:30:03

已知有多個獨立的excel工作簿檔案,現在需要將這些檔案合併到一個新的工作簿中。保留原來excel工作簿中各個excel工作表名稱。如果量小,可以採用開啟一個個複製的方法。在這裡,我將向大家分享,怎麼批次處理多個工作簿(ps:不是工作表)的合併。

1

將需要合併的excel工作簿檔案放置在一個檔案夾中。
每個檔案夾中的工作簿都輸入了簡單的內容。


2

在該檔案夾中,新建立一個新的excel工作簿檔案。重新命名為8.


3

開啟新建立的excel工作簿檔案8.按Alt+F11或者將滑鼠移動到下方工作表名稱sheet1上右鍵,選擇檢視程式碼。


4

在彈出的程式碼編輯視窗中,輸入程式碼。注意:通過快捷鍵Alt+F11開啟的視窗如下沒有直接複製程式碼的面板,需要點選左上方的工程-VBA project模組,雙擊sheet1,即可開啟程式碼視窗。而步驟3中的第二種方法可以直接開啟程式碼輸入視窗。



5

在程式碼視窗中,黏貼下列程式碼:

Sub CombineFiles()

  Dimpath           As String
   DimFileName       As String
   DimLastCell       As Range
   DimWkb            As Workbook
   DimWS             As Worksheet
   DimThisWB         As String
 
 
   Dim MyDir AsString
   MyDir =ThisWorkbook.path & ""
   'ChDriveLeft(MyDir, 1) 'find all the excel files
  'ChDir MyDir
   'Match =Dir$("")
   
   ThisWB =ThisWorkbook.Name
  Application.EnableEvents = False
  Application.ScreenUpdating = False
   path =MyDir
   FileName =Dir(path & "*.xls", vbNormal)
   Do UntilFileName = ""
      If FileName <> ThisWB Then
          Set Wkb = Workbooks.Open(FileName:=path & ""& FileName)
          For Each WS In Wkb.Worksheets
              Set LastCell = WS.Cells.SpecialCells(xlCellTypeLastCell)
              If LastCell.Value = "" And LastCell.Address = Range("$A$1").AddressThen
              Else
                  WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
              End If
          Next WS
          Wkb.Close False
      End If
      FileName = Dir()
   Loop
  Application.EnableEvents = True
  Application.ScreenUpdating = True
   
   Set Wkb =Nothing
   Set LastCell= Nothing
End Sub



6

點選選單欄執行-執行子過程-使用者表單。關閉程式碼輸入視窗。開啟excel工作簿8.可以看到下方已經多了很多新的工作表——此時,我們已經將之前的工作簿中的工作表都複製到了這一新建的工作簿中。




IT145.com E-mail:sddin#qq.com