標題:
[發問]
(已解決)如何將多個檔案彙總至一個檔案中(分季)
[打印本頁]
作者:
freeffly
時間:
2011-6-6 20:46
標題:
(已解決)如何將多個檔案彙總至一個檔案中(分季)
本帖最後由 freeffly 於 2012-2-22 17:01 編輯
我有110幾各檔案檔案名稱如200101前面4碼是年度後面兩碼是月份
這些檔案都放在同一個資料夾中
我想要200101、200102、200103的資料依序分別貼到彙總檔案中的第一個工作表
200104、200105、200106的資料依序分別貼到彙總檔案中的第二個工作表
如此依序將資料夾中的檔案都貼到彙總檔案中
請問這個程式碼要如何寫?
作者:
luhpro
時間:
2011-6-7 00:29
本帖最後由 luhpro 於 2011-6-7 00:35 編輯
依你的需求來看基本上我們要做的就是 :
1. 找到需要處理的檔案
2. 建立新的(或找到這個) Excel WorkBook
3. 將該季三個月的檔案中的Sheet 新增(Copy)到這個 WorkBook
4. 給定該季的檔案名稱並存檔後關閉
5. 繼續處理下一個檔案
第 1. 個步驟可以用 Dir 指令來達成.
第 2 ~ 4 的步驟我大概列出一些步驟給你參考 :
Dim sSouFile$, sTarFile$
Dim shSou, shTar
'執行前請先在工作目錄下建立一個 Ans 目錄, 用來存放轉換過後的檔案, 可避免新建的檔案也被 Dir 納入處理造成錯誤結果
'這裡使用 dir 指令找到需要處理的檔案並開啟它, 焦點設在要 Copy 的 Sheet
'以下假設該檔案名稱已經賦予給 sSouFile 了, 即 sSouFile = "200101.xls" 之類
'sSouFile = "200101.xls"
Application.DisplayAlerts = False
Set shSou = Sheets(1) ' 假設 200101.xls 檔案中要 Copy 的是 Sheet(1)
With shSou
sTarFile = Left(sSouFile, 4) & Right("0" & Int((Val(Mid(sSouFile, 5, 2)) - 1) / 3) + 1, 2) ' 轉換成季檔名
sTarFile = ThisWorkbook.Path & "\Ans\" & sTarFile & ".xls"
.Copy
Set shTar = ActiveWorkbook.ActiveSheet
With shTar.Parent
shTar.Name = Mid(sSouFile, 5, 2)
.SaveAs Filename:=sTarFile
.Close
End With
End With
Application.DisplayAlerts = True
複製代碼
上述程式還有一個問題就是每個檔案都只有一個 Sheet,
因為怎麼把 Sheet 新增到某個檔案中的某個Sheet前(或後)面,
這點我還沒測試出來.
作者:
freeffly
時間:
2011-6-7 06:32
回復
2#
luhpro
謝謝大大提供這方式讓我思考
雖然還沒有全部解決我的問題
不過已經讓我看到一些原本沒想到的東西
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)