很多时候,我们都想要遍历文件夹中的每个文件,例如在工作表中列出所有文件名、对每个文件进行修改。VBA给我们提供了一些方式:(1)Dir函数;(2)File System Object。
使用Dir函数
Dir函数是一个内置的VBA函数,可用于可使用VBA的任何应用程序。
使用File System Object(FSO)
File System Object(FSO)是一个单独的操作库,我们可以在VBA代码中使用它。有两种方法可以打开FSO库,即早期绑定或后期绑定。如果你不确定要使用哪个,建议使用后期绑定。它可能会导致代码速度变慢,但运行时的错误应该更少。
早期绑定
在VBE编辑器中,单击“工具——引用”。在“引用”对话框中,找到并选取“MicrosoftScripting Runtime”,单击“确定”按钮。
后期绑定
后期绑定不需要任何特定操作来启用FSO库,确保在VBA代码中需要时打开库。
遍历文件夹中所有文件
下面的示例代码将文件名打印到立即窗口,很容易修改这些代码以更适合你的具体情况。
方法1:使用Dir函数
Sub LoopAllFilesInAFolder()
'遍历文件夹中的所有文件
Dim fileName As Variant
fileName =Dir("D:\excelperfect\")
While fileName <> ""
'插入对每个文件要执行的操作
'本示例代码打印文件名到立即窗口
Debug.Print fileName
'设置fileName指向下一个文件
fileName = Dir
Wend
End Sub
上面的代码可以很容易地通过使用通配符进行调整。例如:
‘遍历带有扩展