Как установить .InitialView и просматривать файлы при использовании FileDialogFolderPicker? - PullRequest
0 голосов
/ 19 ноября 2011

Я хочу открыть диалоговое окно, в котором пользователь может:

  • выберите папку
  • сортировка записей по алфавиту
  • см. Файлы и папки

Я пытаюсь использовать VBA Application.FileDialog для выполнения текущего кода следующим образом:

Sub makeFileDialog()

Dim dialog As FileDialog
Dim result As String


Set dialog = Application.FileDialog(msoFileDialogFolderPicker)

With dialog
    .InitialFileName = "c:\"
    .InitialView = msoFileDialogViewDetails
    If dialog.Show = -1 Then
        result = .SelectedItems.Item(1)
    Else
        result = ""
    End If
End With

debug.print result

End Sub

Это позволяет мне выбрать папку, но .InitialView установлен неправильно - кнопка просмотра недоступна, а список папок не разбит на столбцы для сортировки. Я думаю, что .InitialView нельзя установить с помощью msoFileDialogFolderPicker. Кроме того, имена файлов не отображаются.

Я попытался изменить параметр FileDialog на msoFileDialogFilePicker, что позволило мне использовать представления и показанные файлы, но при этом я не могу выбрать и вернуть папку.

Я видел в сети решение, которое использует CreateObject("Shell.Application"), но диалог, созданный оболочкой, не очень гибок и не предлагает много информации о каждом файле.

Идеи

1 Ответ

1 голос
/ 19 ноября 2011

Краткий ответ: Нет. Невозможно разрешить пользователю выбирать папку или файл.Я думаю, что большинство согласится с тем, что это хорошо.

Вы правильно поняли - используйте msoFileDialogFilePicker , чтобы показать все папки и файлы.При желании вы можете просто использовать средство выбора файлов и проанализировать имя файла, чтобы получить путь к папке, если вам действительно это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...