使用Application.FileDialog选择文件夹

时间:2012-02-22 17:14:14

标签: vba excel-vba excel

我正在使用Application.FileDialog让用户选择一个文件夹,如:

Dim F As FileDialog
Set F = Application.FileDialog(msoFileDialogFolderPicker)

在这种情况下,默认文件夹不包含子文件夹,因此用户看到的是一个空框。理想情况下,对话框不仅会列出文件夹,还会列出禁用/灰显的文件,以便用户能够看到他正在挑选的文件夹的内容。

有没有办法用FileDialog以便宜的方式做到这一点,还是我必须创建自己的表格(呃)?

1 个答案:

答案 0 :(得分:1)

以下是我的数据库中的内容。对于 VBA ,我一直在使用它已经有一段时间了。这段代码我的,我很久以前就在网上找到了它。

Sub Sample()
    ret = BrowseForFolder("C:\")
End Sub

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
    Dim ShellApp As Object

    Set ShellApp = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "Please choose a folder", 0, OpenAt)

    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0

    Set ShellApp = Nothing

    Select Case Mid(BrowseForFolder, 2, 1)
    Case Is = ":"
        If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
    Case Is = "\"
        If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
    Case Else
        GoTo Invalid
    End Select

    Exit Function

Invalid:
    BrowseForFolder = False
End Function