使用VBA循環遍歷所有子文件夾我正在尋找一個VBA腳本,它將遍歷指定文件夾的所有子文件夾。當我說所有子文件夾時,我指的是指定文件夾中的每個文件夾,以及其中的每個文件夾.理論上可以有無限個嵌套子文件夾,但實際上它可能不會超過3或4。我使用的是VBA腳本運行時對象,這樣一旦我循環到文件夾中,我就可以檢查一些文件的屬性(但我知道怎么做)。謝謝你的幫助!這個問題不同于前面問題中列出的“相似”問題包含已知的目錄,而這里的需要是查找已知的和未知的目錄。還需要多個子目錄層。你們真的應該在發射“復制”之前讀一下這個問題。
3 回答
縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
Dim FileSystem As ObjectDim HostFolder As StringHostFolder = "C:\"Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(HostFolder)Sub DoFolder(Folder)
Dim SubFolder For Each SubFolder In Folder.SubFolders
DoFolder SubFolder Next
Dim File For Each File In Folder.Files ' Operate on each file
NextEnd Sub
米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
Public Sub NonRecursiveMethod()
Dim fso, oFolder, oSubfolder, oFile, queue As Collection Set fso = CreateObject("Scripting.FileSystemObject")
Set queue = New Collection
queue.Add fso.GetFolder("your folder path variable") 'obviously replace
Do While queue.Count > 0
Set oFolder = queue(1)
queue.Remove 1 'dequeue
'...insert any folder processing code here...
For Each oSubfolder In oFolder.SubFolders
queue.Add oSubfolder 'enqueue
Next oSubfolder For Each oFile In oFolder.Files '...insert any file processing code here...
Next oFile LoopEnd SubSet oFolder = queue(1)Set oFolder = queue(queue.Count)queue.Remove(1)queue.Remove(queue.Count)
胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
queue.Remove 1
- 3 回答
- 0 關注
- 804 瀏覽
添加回答
舉報
0/150
提交
取消
