在VBA中为FileDialog默认一个文件夹

Chu*_*uck 19 vba filedialog

Private Sub Command93_Click()

    Dim f As Object
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant
    Dim P As String
    Dim DeleteEverything As String

        DoCmd.SetWarnings False
        DeleteEverything = "DELETE * FROM [TABLE]"
        DoCmd.RunSQL DeleteEverything

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    If f.Show Then
        For Each varItem In f.SelectedItems
            strFile = Dir(varItem)
            strFolder = Left(varItem, Len(varItem) - Len(strFile))
            P = strFolder & strFile
        Next
    End If
    Set f = Nothing

        DoCmd.TransferText acImportFixed, "[IMPORT SPECIFICATION]", "[TABLE]", P, False

End Sub
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在最初打开时将FileDialog默认为特定文件夹?

提前感谢您对此事的任何帮助

Chu*_*uck 49

添加文件夹路径(包括尾随\)InitialFileName.例如,要在用户的主目录中打开对话框,请执行以下操作:

f.InitialFileName = Environ("USERPROFILE") & "\"
Run Code Online (Sandbox Code Playgroud)

如果忘记了尾随\,则对话框仍将在正确的文件夹中打开,但文件夹名称也将显示为默认选定的文件名.然后对话框将查找具有相同名称的子文件夹,该子文件夹通常不存在.

  • @Davesexcel 看来您使用的是 Windows。在 macOS 和 Linux 上,它将是“/”。`Application.PathSeparator` 可以在任何地方使用。 (5认同)
  • 我认为`Application.PathSeparator`代替`“ \”`会更好 (3认同)