- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
本帖最後由 准提部林 於 2015-9-9 17:27 編輯
回復 13# ui123
2003以上沒了 FileSearch,對這多層搜檔實在頭痛,不是專行寫的,參考看看!
A1請先輸入〔檔案名稱.副檔名〕,僅搜索執行檔案同一層及以下子資料夾的檔案,
若與實際需求有不足點,請自行修改:- Sub Get_File()
- Dim OBJ, xD, xFile$, Urr, U, G, GF, K, xB As Workbook
- Set OBJ = CreateObject("Scripting.FileSystemObject")
- Set xD = CreateObject("Scripting.Dictionary")
- Urr = Array(ThisWorkbook.Path)
-
- RE_GET:
- For Each U In Urr
- xFile = U & "\" & [A1].Value '檔案夾路徑+A1檔名.副檔名
- If Dir(xFile) <> "" Then Set xB = Workbooks.Open(xFile): Exit Sub '找到檔案,開啟並跳出
-
- Set GF = OBJ.GetFolder(U).SubFolders '取得本層子資夾
- If GF.Count > 0 Then
- For Each G In GF: K = K + 1: xD(K) = G.Path: Next '將子資料夾納入字典檔
- End If
- Next
-
- If K > 0 Then Urr = xD.items: xD.RemoveAll: K = 0: GoTo RE_GET '若字典檔有內容,再去找檔案
- MsgBox "找不到目標檔案! "
- End Sub
複製代碼 |
|