Board logo

標題: [發問] EXCEL 檔案合併 [打印本頁]

作者: eg0802    時間: 2012-5-23 16:45     標題: EXCEL 檔案合併

請問一下  如何把多個excel檔案 合併成1個活頁簿裡面有多個工作表?
作者: register313    時間: 2012-5-23 19:10

回復 1# eg0802

利用VBA
  1. Sub MergeBook()
  2. Dim MyPath$, MyName$, wb As Workbook, sh As Worksheet, sht As Worksheet
  3. Set wb = ThisWorkbook
  4. MyPath = ThisWorkbook.Path & "\"
  5. MyName = Dir(MyPath & "*.xls")
  6. Application.ScreenUpdating = False
  7. Application.DisplayAlerts = False
  8. For Each sh In Sheets
  9.   If sh.Name <> ActiveSheet.Name Then sh.Delete
  10. Next
  11. Do While MyName <> ""
  12.   If MyName <> ThisWorkbook.Name Then
  13.      With GetObject(MyPath & MyName)
  14.        For Each sht In .Sheets
  15.            sht.Copy After:=wb.Sheets(wb.Sheets.Count)
  16.        Next
  17.        .Close False
  18.      End With
  19.   End If
  20.   MyName = Dir
  21. Loop
  22. Application.DisplayAlerts = True
  23. Application.ScreenUpdating = True
  24. End Sub
複製代碼
[attach]11111[/attach]
作者: eg0802    時間: 2012-5-24 09:26

回復 2# register313


    r大 小弟不才....完全不會用vba.....能否教我如何使用?
作者: eg0802    時間: 2012-5-24 09:40

回復 2# register313


    R大 再請教一下,我剛測試一下你的檔案,我把檔案放到桌面,發現幾乎把所有的EXCEL 都合併再一起,看了一下合併的內容,都是桌面上的EXCEL檔案,我想我明白該如何使用此功能了,再次感謝!!!!

能否再請教一個問題  如果我合併後,統一修改好資料,要把活頁簿再分散為個別檔來該如何做呢?
作者: alumi    時間: 2012-5-24 12:24

回復 2# register313
請問, 可否解釋一下這段:

.MyPath = ThisWorkbook.Path & "\"
.MyName = Dir(MyPath & "*.xls")
-----------------------------------------
這個程式碼的用意, 是在取得 目前工作路徑下 的 "第一個 excel 檔案"的 完整路徑與 名稱嗎?
作者: register313    時間: 2012-5-24 21:08

回復 5# alumi

正確
作者: kakala0513    時間: 2012-6-1 09:59

最近被公司的資料搞得頭昏腦脹
看到這個真的讓我又學到了很多~
感謝每位先進的分享
作者: alex_wu    時間: 2012-6-2 00:11

讚,超級方便 好用
作者: qwern    時間: 2012-7-8 15:13

那如果是把多個檔案合併在同一個活頁簿裡面呢  不要分很多個工作表  只要一個
作者: tacula    時間: 2013-3-18 17:01

回復 2# register313

謝謝你提供好工具




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)