【问题标题】:Excel VBA Dir MethodExcel VBA 目录方法
【发布时间】:2015-03-29 04:52:33
【问题描述】:

我已成功使用以下代码的形式多次打开文件夹中的多个文件,并且我了解 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 是否设计为在同一路径的文件列表中查找下一个文件?

【问题讨论】:

  • MyFile = Dir 行用于获取下一个条目(即您的下一个文件)。看到这个:exceltrick.com/formulas_macros/vba-dir-function
  • 谢谢亚历克斯,好文章。我喜欢它一开始就注意到 Dir 是一个“非常特殊”的函数,在我看来,它是专门设计的,预计需要在一个位置遍历多个文件,因此设计为以后不带参数调用。

标签: excel vba


【解决方案1】:

Dir 函数声明了一个 Static variables 并将它们用于以后的调用。

我猜逻辑是:

  1. index_of_filenumber_of_files 声明为静态整数

  2. 如果提供参数,扫描目录集index_of_file1,设置number_of_files为文件夹中的文件数,返回第一个文件。

  3. 如果未提供参数,则递增index_of_file 并返回具有该索引的文件,或者如果index_of_file&gt;number_of_files 则返回""

【讨论】:

    猜你喜欢
    • 2016-06-05
    • 1970-01-01
    • 2013-04-12
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多