VBA FileDialog - Kako otvoriti FilesDialog Box pomoću VBA koda?

Excel VBA FileDialog

U VBA fieldialog je svojstvo koje se koristi za predstavljanje različitih instanci, u filedialogu postoje četiri različite vrste konstanti koje su poznate kao msofiledialogfilepicker koje se koristi za odabir datoteke s određenog puta, drugo je msofiledialogfolderpicker čije ime sugerira da se koristi za odabir mapa i treći je msofiledialog otvoren za otvaranje datoteke, a posljednji je msofiledialogsaveas koji se koristi za spremanje datoteke kao nove datoteke.

Postoje određene okolnosti u kojima želimo podatke iz bilo koje druge datoteke ili bilo kojeg drugog radnog lista, a kako se VBA koristi za automatizaciju našeg rada, možemo otvoriti različite druge datoteke pomoću VBA-a, a to se radi pomoću dijaloškog okvira Datoteka, cool dijela korištenja ove metode je da ne trebamo pružiti put do koda, već tražimo od korisnika da pregledava datoteku.

Kao dio VBA projekta, možda ćemo zatražiti otvaranje drugih radnih knjiga i izvršavanje neke vrste zadatka s njima. U jednom od ranijih članaka, „VBA Workbook.Open“, pokazali smo kako otvoriti datoteke s navedenom stazom i određenom datotekom. Tamo smo trebali dodati putanju mape i naziv datoteke s njenim nastavkom. Ali što ako svaki put kada korisnik mora odabrati različite datoteke iz različitih mapa. Tu dolazi do slike opcija "FileDialog".

Kako funkcionira opcija VBA FileDialog?

"Ako ne znate točan put, FileDialog će vas pronaći i odabrati datoteku." Umjesto spominjanja adrese puta i naziva datoteke, možemo zasebno predstaviti dijaloški prozor za otvaranje datoteke kako bismo datoteku odabrali iz bilo koje mape računala.

"FileDialog" je objekt u VBA-u. Da bismo prvo koristili ovu opciju, moramo definirati varijablu kao FileDialog.

Jednom kada je varijabla deklarirana kao "FileDialog", ona je objektna varijabla. Da bismo to započeli koristiti, objekt moramo postaviti pomoću Application.FileDialog.

Kao što vidimo na gornjoj slici, FileDialog ima četiri mogućnosti.

  • msoFileDialogFilePicker: Ova opcija otvara prozor za odabir datoteka ispred korisnika da odabere željenu datoteku prema njihovoj želji.
  • msoFileDialogFolderPicker: Ova opcija otvara dijaloški okvir ili prozor ispred korisnika za odabir mape.
  • msoFileDialogOpen: Ovo će omogućiti korisniku da otvori odabranu datoteku iz mape.
  • msoFileDialogSaveAs: Ovo će omogućiti korisniku da spremi datoteku kao drugu kopiju.

Od sada sam odabrao opciju msoFileDialogFilePicker.

Sada moramo dizajnirati dijaloški okvir koji će se pojaviti ispred nas.

Pomoću Izjave možemo oblikovati dijaloški okvir.

Unutar iskaza stavite točku da biste vidjeli IntelliSense popis svojstava i metoda opcije FileDialog.

Da bismo vidjeli samo excel datoteke kada se otvori dijaloški okvir datoteke, prvo moramo ukloniti bilo koji primijenjeni filtar.

Sada moramo primijeniti novi filtar kao "Excel datoteke" sa zamjenskim proširenjem excel datoteka.

Sada promijenimo naslov dijaloškog okvira datoteke.

Korisniku možemo dopustiti da odabere samo jednu datoteku odjednom ili možemo odabrati i više datoteka. Za to moramo koristiti "Dopusti višestruki odabir."

Ovdje imamo dvije mogućnosti. Ako se odabere TRUE, to će korisniku omogućiti odabir više datoteka. Ako jest, FALSE korisnik može istodobno odabrati samo jednu datoteku.

Druga stvar koju možemo dizajnirati s FileDialogom je da zapravo možemo inzistirati na tome koja bi trebala biti zadana mapa kada se pojavi dijaloški okvir datoteke. Za ovu upotrebu, početno ime datoteke.

Za to moramo spomenuti zadanu mapu koja se otvara put adrese.

Sada konačno, moramo primijeniti metodu "Prikaži" da bismo vidjeli dijaloški okvir datoteke.

Kodirati:

Sub DoEvents_Example1 () Zatamni moju datoteku kao FileDialog Postavi Myfile = Application.FileDialog (msoFileDialogFilePicker) s Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Odaberite svoju Excel datoteku !! ! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Prikaži Kraj s Kraj Sub

Sada pokrenite VBA kod da biste vidjeli rezultat.

Kao što vidimo u gornjem dijaloškom okviru slikovne datoteke, zadani je okvir otvorio spomenutu mapu.

Sada možemo odabrati bilo koju podmapu i odabrati excel datoteke.

Pogledajte gornju sliku jer smo parametar filtra primijenili samo kao "Excel datoteke".

Ovim ćete samo odabrati datoteku iz spomenute mape. Da bismo pohranili puni put, trebamo deklarirati još jednu varijablu kao niz.

Now inside the with the 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 the below code to select the files.

Code:

Sub DoEvents_Example1 () Zatamni moju datoteku kao FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress as string with Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Choose your Excel datoteka !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Pokaži FileAddress = .SelectedItems (1) Završi s MsgBox FileAddress End Sub

Zanimljivi članci...