求助]如何用VBA遍历指定目录下的所有子文件夹和文件-字典模式

你好,请问
Sub Test() '使用双字典,旨在提高速度
Dim MyName, Dic, Did, I, T, F, TT, MyFileName
T = Time
Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象
Set Did = CreateObject("Scripting.Dictionary")
Dic.Add ("D:\"), ""
I = 0
Do While I < Dic.Count
Ke = Dic.keys '开始遍历字典
MyName = Dir(Ke(I), vbDirectory) '查找目录
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(Ke(I) & MyName) And vbDirectory) = vbDirectory Then '如果是次级目录
Dic.Add (Ke(I) & MyName & "\"), "" '就往字典中添加这个次级目录名作为一个条目
End If
End If
MyName = Dir '继续遍历寻找
Loop
I = I + 1
Loop
Did.Add ("文件清单"), "" '以查找D盘下所有EXCEL文件为例
For Each Ke In Dic.keys
MyFileName = Dir(Ke & "*.xls")
Do While MyFileName <> ""
Did.Add (Ke & MyFileName), ""
MyFileName = Dir
Loop
Next
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name = "XLS文件清单" Then
Sheets("XLS文件清单").Cells.Delete
F = True
Exit For
Else
F = False
End If
Next
If Not F Then
Sheets.Add.Name = "XLS文件清单"
End If
Sheets("XLS文件清单").[A1].Resize(Did.Count, 1) = WorksheetFunction.Transpose(Did.keys)
TT = Time - T
MsgBox Minute(TT) & "分" & Second(TT) & "秒"
End Sub
---------------------------这段代码中 F = True/F = False 的“F”代表什么????

F是一个临时逻辑变量,在循环查找工作簿中是否有名为“XLS文件清单”的工作表,找到为“真”,否则为假。目的是方便后续的代码处理,如果没有这个工作表,则先创建建这个工作表,后面才能放置遍历出来的文件夹及文件名。
温馨提示:内容为网友见解,仅供参考
无其他回答

求助]如何用VBA遍历指定目录下的所有子文件夹和文件-字典模式
Else F = False

求助]如何用VBA遍历指定目录下的所有子文件夹和文件-字典模式
F是一个临时逻辑变量,在循环查找工作簿中是否有名为“XLS文件清单”的工作表,找到为“真”,否则为假。目的是方便后续的代码处理,如果没有这个工作表,则先创建建这个工作表,后面才能放置遍历出来的文件夹及文件名。

如何用VBA遍历指定目录下的所有子文件夹和文件
Sub Test() Dim MyName, Dic, Did, I, T, F, TT, MyFileName T = Time Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象 Set Did = CreateObject("Scripting.Dictionary") Dic.Add ("D:\\My Documents\\"), "" I = 0 Do While I < Dic.C...

如何用VBA遍历指定目录下的所有子文件夹Excel文件的所有工作表
sub test()dim f as string,mPath as string,Wb as workbook,Sh as workSheetif workbooks.count>1 then msgbox "关闭其他工作簿!":exit submPath = "D:\\临时文件夹\\" '指定路径,注意分层标记\\f=dir(mPath & "*.xls*")do while f<>"" if f<>thisworkbook.name then set Wb=wo...

如何用VBA遍历指定目录下的所有子文件夹Excel文件的所有工作表
功能: 查找指定文件夹含子文件夹内所有文件名或文件夹名(含路径)'函数名: FileAllArr'参数1: Filename 需查找的文件夹名 不含最后的""'参数2: FileFilter 需要过滤的文件名,可省略

VBA中怎么遍历所选路径中所有文件夹及其子文件夹(多个子文件),并返回...
答:执行"获取所有文件夹",按提示操作。文件夹清单会显示在工作表的AB列中。Sub 获取所有文件夹() Dim Directory As String With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & "\\" .Title = "请选择一个文件夹" .Show If ...

VBA 如何遍历文件夹,找到文件,找到单号,引出内容
采用 数组+ files集合 + 字典判断 的方法将 单号 存入字典,循环files名字,用字典判断是否存在或者将 files名字 存入字典,循环 单号,用字典判断是否存在 files集合方法:Sub ShowFileList(ph) Dim fs, f, f1, fc, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs....

VBA 搜索电脑所有盘文件,问题关键:所有盘文件用什么代码?
Chr(c) & ":\\"Dic.Add (K), ""Next Else Dic.Add (WP), ""End If 我这段代码是指WP变量为输入某磁盘,如果输入是空的,就使用循环的方式从A盘添加到Z盘的所有文件夹(涵盖所有盘)。但是经过测试,电脑中的文件夹太多,这么运行一次,基本就卡机了,所以个人建议一个一个盘手动添加。

如何用VBA汇总不同文件夹下工作簿内匹配的内容,类似VLOOKUP的效果
dim db,k,v'创建字典set db=createobject("scripting.dictionary")'字典赋值db("a")=1db("b")=2db("c")=3'字典查询msgbox db("b")上面的代码看起来没有用,因为只有三个数,其实可以存下一个表,特别适合多表匹配,先赋值字典,查询的时候无需任何循环或者搜索代码,直接可以获取值。

vba如何批量删除当前目录下多个文件夹中的所有word的最后一页并保证前...
使用Dir函数,把你的文件夹中的word文档名全部找出来。然后用documents.open方法,逐个打开文档改字体颜色。参考:Dim MyDoc$MyDoc = Dir("C:\\Documents and Settings\\user\\My Documents\\*.doc")Debug.Print MyDocDo While MyDoc <> "" MyDoc = Dir Debug.Print MyDocLoop open方法是这样...

相似回答