Excel VBA 目录方法
Excel VBA Dir Method
我已经多次成功地使用以下代码形式打开文件夹中的多个文件,并且我了解 dir 如何帮助在 while 循环之前设置文件路径,但不太了解如何调用 dir 方法在 while 循环结束之前再次不带参数查找文件夹中的下一个文件:
Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\newFolder"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Loop
End Sub
当在已设置值的字符串上调用 Dir 时,Dir 是否设计为查找同一路径下文件列表中的下一个文件?
Dir
函数声明了一个 Static variables 并将它们用于以后的调用。
我猜逻辑是:
将 index_of_file
和 number_of_files
声明为静态整数
如果提供参数,扫描目录设置index_of_file
到1
,设置number_of_files
到文件夹中的文件数,return第一个文件.
如果未提供参数,则递增 index_of_file
和 return 具有该索引的文件,或者 return ""
如果 index_of_file>number_of_files
我已经多次成功地使用以下代码形式打开文件夹中的多个文件,并且我了解 dir 如何帮助在 while 循环之前设置文件路径,但不太了解如何调用 dir 方法在 while 循环结束之前再次不带参数查找文件夹中的下一个文件:
Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\newFolder"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Loop
End Sub
当在已设置值的字符串上调用 Dir 时,Dir 是否设计为查找同一路径下文件列表中的下一个文件?
Dir
函数声明了一个 Static variables 并将它们用于以后的调用。
我猜逻辑是:
将
index_of_file
和number_of_files
声明为静态整数如果提供参数,扫描目录设置
index_of_file
到1
,设置number_of_files
到文件夹中的文件数,return第一个文件.如果未提供参数,则递增
index_of_file
和 return 具有该索引的文件,或者 return""
如果index_of_file>number_of_files