使用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 Sub
Set oFolder = queue(1)
Set oFolder = queue(queue.Count)
queue.Remove(1)
queue.Remove(queue.Count)
月关宝盒
TA贡献1772条经验 获得超5个赞
queue.Remove 1
添加回答
举报
0/150
提交
取消