✔ 最佳答案
<範例檔>VBA,試看看:
http://www.funp.net/26825
以資料樣本,處理60個檔案應不會太多時間,
若有必要,請延長發問天數!
2012-09-24 12:12:59 補充:
<範例檔>第2版:
http://www.funp.net/248230
若有問題補充,請利用此〔意見區〕。
2012-09-24 21:11:33 補充:
改2個地方,請自行找一下去改:
1.Set uBook = Workbooks.Open(uPath & uFile)
改成
Set uBook = Workbooks.Open(uPath & uFile, UpdateLinks:=0)
2.Set xBook = Workbooks.Open(uPath & xR)
改成
Set xBook = Workbooks.Open(uPath & xR, UpdateLinks:=0)
UpdateLinks = 0 不更新連結,1 為更新連結,視您的需要!
2012-09-25 09:52:04 補充:
EXCEL VBA.將〔數十個檔案〕第1張工作表的〔同一儲存格〕加總
<.准提部林.>
-------------------------------
■執行介面: 目標路徑:D:\File01總計檔名稱:summary.xls 檔案名稱處理訊息01.xls已加入總計02.xls已加入總計03.xls已加入總計04.xls 05.xls 06.xls
■處理規則:
1.加總〔來源檔〕:列表中每一檔案的第1張工作表。
2.加總〔目標檔〕:summary.xls 工作表中〔黃底色〕的儲存格。
■程式碼:僅列出執行〔加總〕主程式,其餘請參閱範例檔
For Each xR In MySht.Range("A5:A" & x)
Xm = Xm + 1
Application.StatusBar = ">>正在處理第 " & Xm & " 個檔案"
If xR = "" Then GoTo 101
If Dir(uPath & xR) = "" Then GoTo 101
Application.ScreenUpdating = False
Set xBook = Workbooks.Open(uPath & xR, UpdateLinks:=0)
ShtName = xBook.Sheets(1).Name
xBook.Close SaveChanges:=False
uBook.Activate
'↑開啟目標檔,取得第1張工作表名稱
For Each uRng In uArea
uRng = "=SUM('" & uPath & "[" & xR & "]" & ShtName & "'!" & _
uRng.Address & "," & Val(uRng) & ")"
uRng.Value = uRng.Value
Next
xR(1, 2) = "已加入總計": Beep
Application.ScreenUpdating = True
101: Next
Application.StatusBar = False
MsgBox "~~處理完成,確認無誤後再存檔~~"
-------------------------------
<範例檔>:
http://www.funp.net/248230
-------------------------------