返回列表 上一主題 發帖

[發問] 請教EXCEL合併

回復 11# qwern
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim MergePath As String, FS As String, Rng As Range
  4.     MergePath = "D:\test\"                                      '合併檔案的資料夾
  5.     FS = Dir(MergePath & "*.xls")                               '尋找 xls 檔案
  6.     If FS <> "" Then
  7.         Set Rng = Workbooks.Add(xlWBATWorksheet).Sheets(1).[a1] '新開的檔案(只有一張工作表)工作表的A1
  8.         Application.ScreenUpdating = False
  9.         Application.DisplayAlerts = False
  10.         Do
  11.             With Workbooks.Open(MergePath & FS)
  12.                 .Sheets(1).UsedRange.Copy Rng                     'MergePath & 中工作表資料  複製到Rng
  13.                 .Close
  14.             End With
  15.             FS = Dir                                              '繼續尋找(MergePath & "*.XLS")
  16.             Set Rng = Rng.End(xlDown).Offset(1)                   '重設Rng 為往下到最後有資料的儲存格下一個空白之儲存格
  17.         Loop While FS <> ""
  18.         Application.DisplayAlerts = False
  19.         Rng.Parent.Parent.SaveAs MergePath & "合併.xls"           '合併檔存檔
  20.         Application.DisplayAlerts = True
  21.         Application.ScreenUpdating = True
  22.     Else
  23.         MsgBox MergePath & " 沒有 xls 檔案"
  24.     End If
  25. End Sub
複製代碼
PS 按回覆鍵 你要回覆者會得到通知

TOP

請問  Dear GBKEE  那如果我想要 他彙整的檔案不要有很多個分頁  全部都在同一個分頁  只是一直往下貼下去呢??

TOP

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

TOP

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

TOP

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

TOP

回復  GBKEE


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

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



方法二 如圖2



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

TOP

回復 2# GBKEE


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

TOP

回復 4# 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

回復 2# GBKEE

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

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題