返回列表 上一主題 發帖

[發問] 請教EXCEL合併

[發問] 請教EXCEL合併

請問高手,我總共有368個XLS檔,每個都只有一個SHEET,但我要368個SHEET合併到一個檔,有沒有什麼方法?

回復 1# twcg
  1. Sub Ex()
  2.     Dim MergePath As String, FS As Object, MergeWorkbook As Workbook, E
  3.     MergePath = "D:\test\"  '合併檔案的資料夾
  4.     Set FS = CreateObject("Scripting.FileSystemObject").GETFOLDER(MergePath).Files
  5.     'FS=合併檔案資料夾中所有檔案物件的集合
  6.     Set MergeWorkbook = Workbooks.Add(xlWBATWorksheet)  '新開的檔案
  7.     Application.ScreenUpdating = False
  8.     For Each E In FS
  9.         If E Like "*.xls" Then  '檔案 的副檔名為xls
  10.             With Workbooks.Open(E)
  11.                 .Sheets(1).Copy MergeWorkbook.Sheets(1)  '將工作表 複製到新開的檔案中
  12.                 .Close
  13.             End With
  14.         End If
  15.     Next
  16.     Application.DisplayAlerts = False
  17.     MergeWorkbook.SaveAs MergePath & "合併.XLS"  '合併檔存檔
  18.     Application.DisplayAlerts = True
  19.     Application.ScreenUpdating = True
  20. End Sub
複製代碼

TOP

回復 2# GBKEE

    很好用的功能, 請問是否可以將工作表名稱按原來工作簿名稱命名?

TOP

回復  GBKEE

    很好用的功能, 請問是否可以將工作表名稱按原來工作簿名稱命名?
ANGELA 發表於 2010-10-5 10:50

With Workbooks.Open(E)
       .Sheets(1).Copy MergeWorkbook.Sheets(1)  '將工作表 複製到新開的檔案中
     MergeWorkbook.Sheets(1).Name = E.Name
       .Close
End With

TOP

回復 4# GBKEE


   可以了, 謝謝版主如此一來就可以把散亂的檔案歸類了,乾淨多了.

TOP

回復 2# GBKEE


    請問這要用什麼程式去執行

TOP

回復  GBKEE


    請問這要用什麼程式去執行
twcg 發表於 2010-10-5 13:01

請先將程式複製到檔案VBA專案裡 且修改MergePath 為合併檔案的資料夾為正確的路徑
方法一 如圖1



方法二 如圖2



方法三 如圖3    1.須將滑鼠移動到指定的程式碼  2.按F5 執行指定的程式

TOP

Dear GBKEE
請問是否可以將工作表名稱更改為取原來工作簿檔案名稱之第5碼至第10碼?
例如:
原來工作簿檔案名稱為 2010ABCDE1PRINT.xls
合併後該工作表名稱為 ABCDE1
敬請指導
100 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 8# b9208
MergeWorkbook.Sheets(1).Name =Mid( E.Name, 5, 6)

TOP

Dear GBKEE
非常感謝指導,程式碼可以使用。
100 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題