使用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 Sub
Set oFolder = queue(1)
Set oFolder = queue(queue.Count)
queue.Remove(1)
queue.Remove(queue.Count)
胡说叔叔
TA贡献1804条经验 获得超8个赞
queue.Remove 1
- 3 回答
- 0 关注
- 736 浏览
添加回答
举报
0/150
提交
取消