使用VBA循環遍歷所有子文件夾我正在尋找一個VBA腳本,它將遍歷指定文件夾的所有子文件夾。當我說所有子文件夾時,我指的是指定文件夾中的每個文件夾,以及其中的每個文件夾.理論上可以有無限個嵌套子文件夾,但實際上它可能不會超過3或4。我使用的是VBA腳本運行時對象,這樣一旦我循環到文件夾中,我就可以檢查一些文件的屬性(但我知道怎么做)。謝謝你的幫助!這個問題不同于前面問題中列出的“相似”問題包含已知的目錄,而這里的需要是查找已知的和未知的目錄。還需要多個子目錄層。你們真的應該在發射“復制”之前讀一下這個問題。
3 回答
慕容森
TA貢獻1853條經驗 獲得超18個贊
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貢獻1844條經驗 獲得超8個贊
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貢獻1772條經驗 獲得超5個贊
queue.Remove 1
添加回答
舉報
0/150
提交
取消
