Я уже много раз искал эту тему, и я много пробовал. На самом деле, мне нужно попросить пользователя сохранить как пользовательский тип, который недоступен в фильтрах msoFileDialogSaveAs
.Сохранить с помощью msoFileDialogFilePicker
Я знаю, что могу сохранить как, допустим, *.txt
, а затем изменить расширение перед сохранением. Я сделал это, и это сработало, но когда пользователь вводит имя файла в папку, уже содержащую другие файлы настраиваемого типа, пользователь не увидит список существующих пользовательских файлов, потому что активный фильтр не относится к этому типу.
Таким образом, мне было интересно, есть ли способ использовать msoFileDialogFilePicker
, чтобы сохранить как пользовательский тип, введя имя файла.
Вот что может выглядеть следующим образом:
Function userFileSaveDialog_OneFilterOnly(iFilter As String, _
iExtension As String, _
Optional iTitle As String)
With Application.FileDialog(msoFileDialogFilePicker) '(msoFileDialogSaveAs)
.Filters.Clear
.Filters.Add iFilter, iExtension
.AllowMultiSelect=False
.ButtonName "Save"
.Title = iTitle
If CBool(.Show) Then
userFileSaveDialog_OneFilterOnly = .SelectedItems(.SelectedItems.Count)
Else
End If
End With
End Function
Спасибо за помощь!
Почему бы не использовать 'Application.GetSaveAsFilename' Это позволит использовать фильтр, как вы хотите –
Рад, что все получилось :) –