標題:
[發問]
求filelist好方法
[打印本頁]
作者:
mhl9mhl9
時間:
2013-7-19 15:22
標題:
求filelist好方法
我要取得指定folder里所有files的list,做了但太慢(5040個file,做完list(on fly)大概3分鐘),請求指點,求好方法.
附件太大,不能upload,大概是
2012\ A,B,C.....L,M,N(共14個folder)\ 1月,2月........11月,12月(共12個folder)\ 01.xlsx,02xlsx,......29.xlsx,30xlsx(共30個file)
合計14*12*30=5040個文件,希望取得Arr(1 to 5040), Arr(1)="2012\A\1月\01xlsx", Arr(2)="2012\A\1月\02.xlsx"........Arr(5040)="2012\N\12月\30.xlsx"
方法一定很多,我取loop死啃,所以很慢......請教好方法,謝謝了
作者:
GBKEE
時間:
2013-7-19 17:55
本帖最後由 GBKEE 於 2013-7-19 17:57 編輯
回復
1#
mhl9mhl9
試試看
Option Explicit
Sub Ex()
Dim S(1 To 3) As String, i As Integer, ii As Integer, iiI As Integer, xDir As String, AR()
S(1) = "D:\2012\"
For i = 65 To Asc("N") 'A - N
S(2) = S(1) & Chr(i)
For ii = 1 To 12 '1月-12月
S(3) = S(2) & "\" & ii & "月\"
xDir = Dir(S(3) & "*.xlsx")
Do While xDir <> ""
ReDim Preserve AR(0 To iiI)
AR(iiI) = S(3) & xDir
iiI = iiI + 1
xDir = Dir
Loop
Next
Next
End Sub
複製代碼
作者:
mhl9mhl9
時間:
2013-7-19 22:24
回復
2#
GBKEE
真是太感謝你了,簡直一秒鐘出來了,快過我死啃180倍,而且又這麼快就幫我解決了.
既然有幸見到如此高手,想再請教個問題:
我用ADO在我上述提到的5124個文件(的list里的文件)取資料,每個文件的sheet1里的"B63:AN111"copy到thisworkbook里sheets(Temp")(從A1起往下排)
要14分鐘,(還是intel 4核 win7+excel2007),是不是很誇張?有好點的方法嗎?
(做這個file,我是第一步取得filelist,再loop每個file,用ADO逐張取出"B63:an111"排隊放在"Temp"頁,再從Temp整理資料放進"資料庫"頁,5124個文件,170210條(row)資料,16分鐘
使用人的電腦可能還沒有這麼快,所以能幫我想想方法嗎? 幫到不幫到,我都要在這裡多謝.
作者:
GBKEE
時間:
2013-7-20 08:21
回復
3#
mhl9mhl9
Temp整理資料放進"資料庫"頁,5124個文件,170210條(row)資料,16分鐘
這已經很快了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)