VBA ви позволява да изберете файл за отваряне с помощта на Application.GetOpenFilename метод. В този урок ще научите как да отворите диалогов прозорец на файл и да зададете параметри.
Ако искате да научите как да отваряте и затваряте файл, можете да кликнете върху тази връзка: VBA Open/Close File
Отворете диалогов прозорец за файлове във VBA
Ако искате да отворите файл във VBA, първо трябва да отворите диалогов прозорец за избор на файл. Ето кода:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename ( |
Както можете да видите, методът има няколко параметъра. FileFilter ви позволява да филтрирате типове файлове, от които се нуждаете, в нашия случай .xlsx файлове.
В Заглавие параметър, можете да зададете заглавие на диалоговия прозорец. Ако искате да разрешите отваряне на няколко файла, трябва да зададете MultipleSelect към Истина. Ако не зададете този параметър, може да бъде избран само един файл.
Изображение 1. Отворете диалогов прозорец за файл
Както можете да видите на Изображение 1, се появява диалоговият прозорец със заглавието Изберете файл на Excel. Филтрират се само Excel файлове и можем да изберем няколко файла.
Отворете диалогов прозорец за файл в конкретна папка
Ако искате да отворите диалогов прозорец в определена папка, трябва да използвате метода .FileDialog с параметъра msoFileDialogFilePicker. В примера ще отворим диалогов прозорец в папката C: \ VBA папка. Ето кода:
123456789101112131415161718192021 | Dim fd Като Office.FileDialogDim strFile As StringЗадайте fd = Application.FileDialog (msoFileDialogFilePicker)С fd.Filters.Clear.Filters.Add "Excel Files", "*.xlsx?", 1.Title = "Изберете файл на Excel".AllowMultiSelect = False.InitialFileName = "C: \ VBA папка"Ако .Show = Вярно ТогаваstrFile = .SelectedItems (1)Край АкоКрай с |
Първо трябва да декларирате променливата fd Тип Office.FileDialog и низовата променлива за вземане на файлове:
12 | Dim fd Като Office.FileDialogDim strFile As String |
След това трябва да настроите fd да се Application.FileDialog (msoFileDialogFilePicker):
1 | Задайте fd = Application.FileDialog (msoFileDialogFilePicker) |
Сега, вътре С fd Край с, можем да зададем множество параметри:
1234567 | .Filters.Clear.Filters.Add "Excel Files", "*.xlsx?", 1.Title = "Изберете файл на Excel".AllowMultiSelect = False |
Тук изчистваме файловите филтри (.Filters.Clear) и го задайте на .xlsx (.Filters.Add “Excel Files”, “*.xlsx?”, 1).
Също така можем да зададем заглавието на диалоговия прозорец: .Title = „Изберете файл на Excel“.
Можем да ограничим потребителя да избира само един файл чрез:.AllowMultiSelect = False
За да отворим диалогов прозорец в папката, която искаме, трябва да поставим този ред от кода:
1 | .InitialFileName = "C: \ VBA папка" |
В края просто ще отворим диалоговия прозорец с всички предварително зададени параметри:
12345 | Ако .Show = Вярно ТогаваstrFile = .SelectedItems (1)Край Ако |
Когато изпълним този код, диалоговият прозорец за отваряне на файл се появява в папката C: \ VBA папка:
Изображение 2. Отворете диалогов прозорец за файл в определена папка