По умолчанию папка для FileDialog в VBA

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

Как сделать FileDialog по умолчанию для конкретной папки, когда она изначально открывается?

Ответ 1

Добавьте путь к папке (включая конечный \) в InitialFileName. Например, чтобы открыть диалоговое окно в домашнем каталоге пользователя, выполните следующие действия:

f.InitialFileName = Environ("USERPROFILE") & "\"

Если вы забудете трейлинг \, то диалоговое окно все равно будет открыто в правильной папке, но имя папки также будет отображаться как выбранное по умолчанию имя файла. Затем диалог будет искать подпапку с тем же именем, которая обычно не существует.

Ответ 2

Или, прежде чем открывать диалоговое окно, просто измените каталог файлов отказов с помощью:

Application.Options.DefaultFilePath(wdDocumentsPath) = "your\path\here"