返回列表 上一主題 發帖

[發問] (已解決)如何將多個檔案彙總至一個檔案中(分季)

本帖最後由 luhpro 於 2011-6-7 00:35 編輯

依你的需求來看基本上我們要做的就是 :
1. 找到需要處理的檔案
2. 建立新的(或找到這個) Excel WorkBook
3. 將該季三個月的檔案中的Sheet 新增(Copy)到這個 WorkBook
4. 給定該季的檔案名稱並存檔後關閉
5. 繼續處理下一個檔案

第 1. 個步驟可以用 Dir 指令來達成.
第 2 ~ 4 的步驟我大概列出一些步驟給你參考 :
  1.   Dim sSouFile$, sTarFile$
  2.   Dim shSou, shTar

  3.   '執行前請先在工作目錄下建立一個 Ans 目錄, 用來存放轉換過後的檔案, 可避免新建的檔案也被 Dir 納入處理造成錯誤結果
  4.   
  5.   '這裡使用 dir 指令找到需要處理的檔案並開啟它, 焦點設在要 Copy 的 Sheet
  6.   '以下假設該檔案名稱已經賦予給 sSouFile 了, 即 sSouFile = "200101.xls" 之類
  7.   'sSouFile = "200101.xls"

  8.   Application.DisplayAlerts = False
  9.   
  10.   Set shSou = Sheets(1) ' 假設 200101.xls 檔案中要 Copy 的是 Sheet(1)
  11.   With shSou
  12.     sTarFile = Left(sSouFile, 4) & Right("0" & Int((Val(Mid(sSouFile, 5, 2)) - 1) / 3) + 1, 2) ' 轉換成季檔名
  13.    sTarFile = ThisWorkbook.Path & "\Ans\" & sTarFile & ".xls"
  14.       
  15.     .Copy
  16.       
  17.     Set shTar = ActiveWorkbook.ActiveSheet
  18.    
  19.     With shTar.Parent
  20.       shTar.Name = Mid(sSouFile, 5, 2)
  21.       .SaveAs Filename:=sTarFile
  22.       .Close
  23.     End With
  24.   End With
  25.     Application.DisplayAlerts = True
複製代碼
上述程式還有一個問題就是每個檔案都只有一個 Sheet,
因為怎麼把 Sheet 新增到某個檔案中的某個Sheet前(或後)面,
這點我還沒測試出來.

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題