Как установить каталог по умолчанию для имени файла Getopen Excel с помощью Outlook VBA?

#excel #vba #outlook-2016 #getopenfilename

Вопрос:

Я пытаюсь установить каталог по умолчанию для функции VBA GetOpenFileName. Мне удалось заставить его работать раньше, но я потерял код перед его сохранением.

 Sub Sample2()
    Dim myFile As Variant
    Dim i As Integer
    Dim myApp As Excel.Application
    Dim strCurDir As String
    Set myApp = New Excel.Application

    ChDrive ("H:")
    ChDir ("H:99 - Temp")

    'Open File to search
    myFile = myApp.GetOpenFileName(MultiSelect:=True)

    If myFile <> False Then
        If IsArray(myFile) Then  '<~~ If user selects multiple file
            For i = LBound(myFile) To UBound(myFile)
                Debug.Print myFile(i)
            Next i
        Else '<~~ If user selects single file
            Debug.Print myFile
        End If
    Else
        Exit Sub
    End If

End Sub
 

Я попробовал несколько вариантов этого кода, и сообщения, которые я нашел, очень старые. Это будет частью более масштабного кода в Outlook 2016.

Комментарии:

1. Это ответ на ваш вопрос? Настройка каталога для имени файла Getopen

2. @АлексейР к сожалению, нет. одна из первых ссылок, которую я нашел, но спасибо

Ответ №1:

Вместо этого попробуйте использовать свойство FileDialog объекта Excel…

 Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")

Dim myFile As Variant
With xlApp.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .ButtonName = "Select"
    .Title = "Select File"
    .InitialFileName = "H:99 - Temp"
    If .Show = 0 Then Exit Sub 'user cancelled
    For Each myFile In .SelectedItems
        Debug.Print myFile
    Next myFile
End With

Set xlApp = Nothing