2014-01-24 2 views
1

Say У меня есть каталог с несколькими типами файлов, и что я уже установлен фильтр файлов, чтобы показать только CSV файлыVBA Диалог предотвратить изменение пользователем расширения FileFilter вариант

paths = Application.GetOpenFilename("Comma Separated Values (*.csv),*.csv", _ 
MultiSelect:=True) 

Приведенный выше код не распространяется фильтр правильно.

Теперь, когда я помещаю текст фильтра в поле редактирования имени файла и нажимаю open/enter, фильтр расширения файлов больше не работает/не возвращается к фильтру пользователя.

Это означает, что если у меня есть файлы, называемые test.doc и test.csv в том же каталоге и введите test* в диалоговом окне редактирования открытого файла, как Слово документ и файл CSV будет отображаться как выбор.

Это ошибка, и есть ли способ обойти это? То есть, я хочу, чтобы пользовательский фильтр был дополнением к предопределенному фильтру.

+0

Назовите это ошибкой или функцией, но это распространено во всем, что использует диалоговое окно файла Windows, а не только Office/VBA. Я думаю, что единственный способ, которым вы могли бы обойти это, - написать свой собственный сборщик файлов с нуля ... – techturtle

+0

Я боюсь, что мне как-то придется относиться к нему как к ошибке - пользователи могут непреднамеренно выбирать файлы с неправильным типом файла и вызывать ошибки в коде, если не учитывать, поэтому в первую очередь был установлен фильтр. Спасибо, просто хотел узнать, было ли это предполагаемое поведение. – colintso

ответ

1

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

Это без Мути выбора:

fileOpen = Application.GetOpenFilename("Text Files (*.csv),*.csv,Word Files (*.doc),*.doc") 

Это с Мути выбрать плюс название:

fileOpen = Application.GetOpenFilename("Text Files (*.csv),*.csv,Word Files (*.doc),*.doc", 1, "Pick Your CSV File", , True) 

Надежда, что помогает!

+0

Я думаю, вы, возможно, неправильно поняли меня - я попытаюсь объяснить это немного яснее. При использовании диалогового окна файла Windows, например. открыв файл в «Блокноте», перейдите в папку с несколькими типами файлов. Теперь введите «*». Все файлы отображаются, а исходный * .txt-фильтр теперь игнорируется, но он по-прежнему отображается как активный. Я надеялся найти решение, запрещающее сброс фильтра при использовании диалогового окна файла Windows в VBA. – colintso

Смежные вопросы