慕俠2389804
2019-07-12 10:37:01
使用VBA循環(huán)遍歷所有子文件夾我正在尋找一個VBA腳本,它將遍歷指定文件夾的所有子文件夾。當我說所有子文件夾時,我指的是指定文件夾中的每個文件夾,以及其中的每個文件夾.理論上可以有無限個嵌套子文件夾,但實際上它可能不會超過3或4。我使用的是VBA腳本運行時對象,這樣一旦我循環(huán)到文件夾中,我就可以檢查一些文件的屬性(但我知道怎么做)。謝謝你的幫助!這個問題不同于前面問題中列出的“相似”問題包含已知的目錄,而這里的需要是查找已知的和未知的目錄。還需要多個子目錄層。你們真的應該在發(fā)射“復制”之前讀一下這個問題。
3 回答

慕容森
TA貢獻1853條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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 Sub
Set oFolder = queue(1)
Set oFolder = queue(queue.Count)
queue.Remove(1)
queue.Remove(queue.Count)

月關(guān)寶盒
TA貢獻1772條經(jīng)驗 獲得超5個贊
queue.Remove 1
添加回答
舉報
0/150
提交
取消