Excel: диалог открытия файла в VBA, для которого задано подробное представление и отсортировано по дате изменения - PullRequest
1 голос
/ 31 марта 2011

Я пытался использовать Google для этого достаточно широко, но я надеюсь, что кто-то здесь может придумать козыри.

Как многие люди (я полагаю) хотели бы создать диалоговое окно открытия файла из Excel (без проблем с использованием GetOpenFilename).

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

Допустим, у меня есть каталог C: \ Temp, полный файлов .piv, и я хочу получить последний созданный файл. Мне нужно открыть диалоговое окно, перейти к деталям, а затем щелкнуть столбец «Дата изменения», и тогда это будет вид и настройка, которые я хочу.

Я должен делать это КАЖДЫЙ РАЗ, как и пользователи. Есть ли способ настроить сортировку и тип представления из Excel VBA.

Материал из главы 9. Профессиональная разработка в Excel дает мне надежду, но не дает мне полного понимания.

Так странно видеть, как это должно быть обычным делом для людей хотеть делать?

Ответы [ 4 ]

3 голосов
/ 31 марта 2011

Нет официального способа сделать это.Есть хаки, но их очень сложно заставить работать на самых разных машинах с Windows.Заставить такие хаки работать в VBA звучит чрезвычайно сложно.

Новые файловые диалоги, введенные в Vista, запоминают такие настройки, как режим просмотра списка, какой столбец был отсортирован и так далее.Я думаю, что Microsoft приняла к сведению разочарование людей по поводу старых версий при разработке новых версий.

2 голосов
/ 01 апреля 2011

Чувак, ты должен получить с FileDialog! Этот объект обладает большей гибкостью, чем GetOpenFilename (и его брат GetSaveAsFilename).

По крайней мере, вы автоматически перейдете в режим просмотра деталей. Пример:

Dim fdgOpen As FileDialog
Set fdgOpen = Application.FileDialog(msoFileDialogOpen)
With fdgOpen
    .Title = "Please open a PIV file..."
    .InitialFileName = "C:\MyDocuments\MyDir\"
    .InitialView = msoFileDialogViewDetails ' Aha!!!
    .Show
End With

Вышеуказанное избавит вас от двух кликов, необходимых для перехода в режим просмотра «Детали». Я не знаю, можно ли автоматизировать последний клик на «Дата изменения», но, по крайней мере, вы на 2/3 пути.

См. Справка VBA на FileDialog. У него довольно много полезных свойств.

0 голосов
/ 14 ноября 2013

Для XP и Office 2010 msoFileDialogViewDetails работает.

0 голосов
/ 14 апреля 2011

Насколько я могу судить, с моей ОС и офисной версией (XP с Office 2007) это невозможно.

...