📜  vba 选择文件夹中的文件 - VBA (1)

📅  最后修改于: 2023-12-03 15:35:34.723000             🧑  作者: Mango

VBA 选择文件夹中的文件

在VBA中,我们有时需要通过代码选择指定文件夹中的文件。下面是一个基本的示例,展示如何使用VBA选择文件夹中的文件。

代码示例

使用以下代码段可以选择文件夹中的文件,并将此文件夹中的所有文件的名称存储在Worksheet的单元格中。

Option Explicit

Sub selectFilesInFolder()
    
    Dim fPath As String
    Dim fso As Object
    Dim fDialog As Office.FileDialog
    Dim selectedFolder As Variant
    Dim i As Long
    
    '获取文件夹路径
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
    With fDialog
        .Title = "请选择一个文件夹"
        .AllowMultiSelect = False
        If .Show = True Then
            selectedFolder = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    '列出文件夹中的所有文件
    fPath = selectedFolder & "\"
    i = 1
    For Each objFile In fso.GetFolder(fPath).Files
        ActiveSheet.Cells(i, 1).Value = objFile.Name
        i = i + 1
    Next objFile
    
    Set fso = Nothing
    Set fDialog = Nothing
    
End Sub
代码解释

在代码中,我们使用了File system object(文件系统对象)和文件对话框(FileDialog)来选择指定文件夹。通过使用FileSystemObject,我们能够获取文件夹路径并列出其中所有的文件。在上面的代码示例中,我们使用了一个循环遍历文件夹中的所有文件,并将文件名存储在Worksheet的单元格中。

在第10行,我们使用FileDialog(文件对话框)来选择一个文件夹。如果有多个文件夹,我们也可以使用AllowMultiSelect属性来允许用户选择多个文件夹。在Show属性为True时,SelectedItems属性包含所选文件夹的路径。如果Show属性为False,我们会退出子过程并不执行任何操作。

在第19行,我们设置存储文件夹路径的变量fPath。然后,在23-26行中,我们使用一个循环遍历文件夹中的所有文件。对于每个文件,我们使用ActiveCell对象将文件名存储在一个单元格中。最后,我们将fso和fDialog设置为Nothing并退出子过程。

这只是一个基本示例,代码可以根据需要进行修改以更好地适应实际需要。