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 并将它们用于以后的调用。

我猜逻辑是:

  1. index_of_filenumber_of_files 声明为静态整数

  2. 如果提供参数,扫描目录设置index_of_file1,设置number_of_files到文件夹中的文件数,return第一个文件.

  3. 如果未提供参数,则递增 index_of_file 和 return 具有该索引的文件,或者 return "" 如果 index_of_file>number_of_files