#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