Vba:如何列出文件夹中的文件
您可以在 VBA 中使用以下方法列出文件夹中的文件:
方法一:列出文件夹中的所有文件
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
方法 2:仅列出文件夹中的 .xlsx 文件
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
以下示例展示了如何在实践中对具有以下文件路径的文件夹使用每种方法:
- C:\Users\bob\Documents\current_data
该文件夹包含两个.xlsx文件和三个.csv文件:
示例1:列出文件夹中的所有文件
我们可以创建以下宏来列出文件夹中的所有文件:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
当我们运行这个宏时,我们会收到以下输出:
我们可以看到文件夹中所有文件的名称(无论其扩展名如何)现在都列在 Excel 工作表的 A 列中。
示例 2:仅列出文件夹中的 .xlsx 文件
我们可以创建以下宏来仅列出文件夹中具有.xlsx扩展名的文件:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
当我们运行这个宏时,我们会收到以下输出:
我们可以看到,Excel 工作表的 A 列中现在仅列出了文件夹中扩展名为.xlsx的文件的名称。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: