excelvba-Dir方法

excelvba-Dir方法,excel,vba,Excel,Vba,我曾多次成功地使用以下代码形式打开文件夹中的多个文件,我了解dir如何在while循环之前帮助设置文件路径,但不太了解如何在while循环结束前无参数再次调用dir方法查找文件夹中的下一个文件: Sub OpenFiles() Dim MyFolder As String Dim MyFile As String MyFolder = "C:\newFolder" MyFile = Dir(MyFolder & "\*.xlsx") Do While MyFile <>

我曾多次成功地使用以下代码形式打开文件夹中的多个文件,我了解dir如何在while循环之前帮助设置文件路径,但不太了解如何在while循环结束前无参数再次调用dir方法查找文件夹中的下一个文件:

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
子OpenFiles()
将MyFolder设置为字符串
将MyFile设置为字符串
MyFolder=“C:\newFolder”
MyFile=Dir(MyFolder&“\*.xlsx”)
当我的文件“”时执行此操作
工作簿。打开文件名:=MyFolder&“\”&MyFile
MyFile=Dir
环
端接头

当对已经设置了值的字符串调用Dir时,Dir是否被设计为查找同一路径的文件列表中的下一个文件?

函数声明a并将其用于以后的调用

我想逻辑是:

  • 将\u文件的
    索引\u
    文件数\u
    声明为静态整数

  • 如果提供了参数,请将目录集
    index\u of_file
    扫描到
    1
    ,将
    number\u of_files
    设置为文件夹中的文件数,然后返回第一个文件

  • 如果未提供参数,则递增
    索引\u文件
    并返回带有该索引的文件,或者如果
    索引\u文件>数量\u文件


  • MyFile=Dir行用于获取下一个条目(即您的下一个文件)。看这个:谢谢Alex,好文章。我喜欢它一开始就指出Dir是一个“非常特殊”的函数,在我看来,它是专门设计的,预期需要迭代一个位置中的多个文件,因此设计为以后无参数调用。