亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用VBA循環遍歷所有子文件夾

使用VBA循環遍歷所有子文件夾

精慕HU 2019-08-03 03:03:12
使用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



查看完整回答
反對 回復 2019-08-04
?
米琪卡哇伊

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 Sub

您可以為FIFO行為使用隊列(如上文所示),也可以為LIFO行為使用堆棧,該堆棧的處理順序與遞歸方法相同(替換Set oFolder = queue(1)帶著Set oFolder = queue(queue.Count)替換queue.Remove(1)帶著queue.Remove(queue.Count),并且可能將變量重命名為.)




查看完整回答
反對 回復 2019-08-04
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

其他兩個已經存儲在集合中,然后我們將在接下來的2個循環中處理該集合(請不要忘記queue.Remove 1移除第一個文件夾,因此第二個文件夾現在是集合的第一個成員,并在下一個對Queue(1)的調用中檢索。堆棧方法則相反,總是對添加的最后一個文件夾進行操作(用Queue(Quee.Count)替換Queue(1),用Quee.Remove Quee.Count替換Quee.Remove 1)。

查看完整回答
反對 回復 2019-08-04
  • 3 回答
  • 0 關注
  • 804 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號