VBA FileDialog | Как да отворите FilesDialog Box с помощта на VBA код?

Excel VBA FileDialog

Във VBA fieldialog е свойство, което се използва за представяне на различни екземпляри, във filedialog има четири различни типа константи, които са известни като msofiledialogfilepicker, който се използва за избор на файл от даден път, вторият е msofiledialogfolderpicker, чието име предполага, че се използва за избор папка и трети е msofiledialog отворен за отваряне на файл, а последният е msofiledialogsaveas, който се използва за запазване на файл като нов файл.

Има определени обстоятелства, при които искаме данните от всеки друг файл или друг работен лист и тъй като VBA се използва за автоматизиране на нашата работа, можем да отваряме различни други файлове с помощта на VBA и това се прави с помощта на Filedialog, страхотната част от използването на това Методът е, че не е необходимо да предоставяме пътя към кода, вместо това искаме от потребителя да прегледа файла.

Като част от проекта VBA може да се наложи да отворим други работни книги и да изпълним някаква задача с тях. В нашата една от по-ранните статии „VBA Workbook.Open“ показахме как да отваряме файлове с посочен път и конкретен файл. Там трябваше да предоставим пътя на папката и името на файла с неговото разширение. Но какво, ако всеки път, когато потребителят трябва да избира различните файлове от различните папки. Тук в картината се появява опцията “FileDialog”.

Как работи опцията VBA FileDialog?

„Ако не знаете точния път, FileDialog ще ви намери и избере файла“. Вместо да споменаваме адреса на пътя и името на файла, можем да представим диалогов прозорец за отваряне на файл поотделно, за да изберем файла от която и да е папка на компютъра.

Можете да изтеглите този шаблон на VBA FileDialog Excel тук - VBA FileDialog Excel шаблон

“FileDialog” е обект във VBA. За да използваме тази опция първо, трябва да дефинираме променливата като FileDialog.

След като променливата е декларирана като “FileDialog”, тя е обектна променлива. За да започнем да използваме това, трябва да зададем обекта с помощта на Application.FileDialog.

Както можем да видим на горната снимка FileDialog има четири опции с нея.

  • msoFileDialogFilePicker: Тази опция отваря прозореца за избор на файл пред потребителя, за да избере желания файл според желанието му.
  • msoFileDialogFolderPicker: Тази опция отваря диалоговия прозорец или прозореца пред потребителя, за да изберете папката.
  • msoFileDialogOpen: Това ще позволи на потребителя да отвори избрания файл от папката.
  • msoFileDialogSaveAs: Това ще позволи на потребителя да запише файла като различно копие.

Към момента избрах опцията msoFileDialogFilePicker.

Сега трябва да проектираме диалоговия прозорец, който се появява пред нас.

Използвайки With Statement, ние можем да проектираме диалоговия прозорец.

Вътре в изявлението поставете точка, за да видите списъка IntelliSense със свойствата и методите на опцията FileDialog.

За да видим само Excel файловете, когато се отвори диалоговият прозорец на файла, първо трябва да премахнем някой от приложените филтри.

Сега трябва да приложим нов филтър като „Файлове на Excel“ с разширяване на заместващите файлове на Excel.

Сега нека променим заглавието на диалоговия прозорец на файла.

Можем да позволим на потребителя да избира само по един файл наведнъж или също така да му позволим да избира и множество файлове. За целта трябва да използваме “Allow Multi-Select”.

Тук имаме две възможности. Ако е избрано TRUE, това ще позволи на потребителя да избере множество файлове, ако това е FALSE, потребителят може да избере само един файл наведнъж.

Друго нещо, което можем да проектираме с FileDialog, е, че всъщност можем да настояваме за това коя трябва да бъде папката по подразбиране, когато се появи диалоговият прозорец на файла. За това използвайте Име на първоначалния файл.

За това трябва да споменем папката по подразбиране, която ще бъде отворена адресната пътека.

Сега накрая трябва да приложим метода „Показване“, за да видим диалоговия прозорец на файла.

Код:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile. ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Файлове" .Показване Край с Край Sub

Сега стартирайте VBA кода, за да видите резултата.

Както можем да видим в горния диалогов прозорец на файла с изображение, по подразбиране е отворена споменатата папка.

Сега можем да изберем всяка подпапка и да изберете Excel файловете.

Погледнете горното изображение, защото сме приложили параметъра на филтъра само като „Файлове на Excel“.

Това просто ще избере файла от споменатата папка. За да съхраним пълния път, трябва да декларираме още една променлива като низ.

Now inside the with statement select “SelectedItems”. Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts”. If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use below code to select the files.

Code:

 Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:\Excel Files" .Show FileAddress = .SelectedItems(1) End With MsgBox FileAddress End Sub