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 中执行其他常见任务:

如何使用 VBA 创建文件夹
如何使用VBA删除文件夹
如何使用VBA重命名文件
如何使用VBA检查文件是否存在

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注