📅  最后修改于: 2023-12-03 15:35:34.560000             🧑  作者: Mango
在 VBA 中,可以使用 FileSystemObject 对象来访问和操作文件系统中的文件和文件夹。使用循环遍历这些文件和文件夹也很简单,下面是一些示例代码和解释。
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Sub ListFilesInFolder(ByVal folderPath As String)
Dim fso As FileSystemObject
Dim folder As folder
Dim file As file
Set fso = New FileSystemObject
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
Debug.Print file.Path
Next file
End Sub
folderPath
中的所有文件,并在调试窗口中打印每个文件的全路径 file.Path
。FileSystemObject
的 GetFolder
方法将一个字符串路径转化为一个 Folder
对象。Folder
对象的 Files
属性是一个 Files
集合,包括该文件夹中的所有文件对象。For Each...Next
语句迭代集合并处理每个文件。Sub ListFoldersAndFilesInFolder(ByVal folderPath As String)
Dim fso As FileSystemObject
Dim folder As folder
Dim subFolder As folder
Dim file As file
Set fso = New FileSystemObject
Set folder = fso.GetFolder(folderPath)
For Each subFolder In folder.SubFolders
ListFoldersAndFilesInFolder subFolder.Path
Next subFolder
For Each file In folder.Files
Debug.Print file.Path
Next file
End Sub
folderPath
中的所有子文件夹和文件,并在调试窗口中打印每个文件的全路径 file.Path
。Folder
对象的 SubFolders
属性是一个 Folders
集合,包括该文件夹中的所有子文件夹对象。ListFoldersAndFilesInFolder
Sub 程序获取每个子文件夹中的文件和文件夹,并处理它们。上面两个 Sub 程序获取了所有文件和文件夹,但在某些情况下,我们只需要处理某些类型的文件。使用 FileSystemObject
对象的 GetExtensionName
和 FileExists
方法可以很容易地过滤文件。
Sub ListFilteredFilesInFolder(ByVal folderPath As String, ByVal extension As String)
Dim fso As FileSystemObject
Dim folder As folder
Dim file As file
Set fso = New FileSystemObject
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
If fso.GetExtensionName(file.Path) = extension And fso.FileExists(file.Path) Then
Debug.Print file.Path
End If
Next file
End Sub
extension
的文件,并在调试窗口中打印每个文件的全路径 file.Path
。FileSystemObject
的 GetExtensionName
方法获取指定文件的拓展名。FileSystemObject
的 FileExists
方法判断一个文件是否存在。以上就是使用 VBA 循环遍历文件夹中的文件的一些示例代码和解释。这些代码可以简化文件和文件夹的处理和管理任务。