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 Filedialoga, cool dijela korištenja ovog metoda 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 našem 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 pronaći i odabrati datoteku". Umjesto spominjanja adrese puta i naziva datoteke, možemo zasebno predstaviti dijaloški prozor za otvaranje datoteke za odabir datoteke iz bilo koje mape računala.

Ovaj predložak VBA FileDialog Excel možete preuzeti ovdje - VBA FileDialog Excel predložak

"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 dizajnirati dijaloški okvir.

Unutar izjave 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 trebamo koristiti "Dopusti višestruki odabir".

Ovdje imamo dvije mogućnosti. Ako je odabrano TRUE, omogućit će korisniku da odabere više datoteka ako je FALSE korisnik može odabrati samo jednu datoteku odjednom.

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 ovo koristite 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 datoteke" .Prikaži kraj s krajnjim sub

Sada pokrenite VBA kod da biste vidjeli rezultat.

Kao što vidimo u gornjem dijaloškom okviru slikovne datoteke, zadana je mapa otvorila 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.

Sada unutar izjave with odaberite "SelectedItems". Dodijelite put odabrane mape stavkama novo definiranoj varijabli.

Sada napokon pokažite odabranu stazu mape u okviru za poruke VBA.

Sada ću pokrenuti program da vidim dijaloški okvir.

Sada sam odabrao Naziv datoteke kao „1. Charts.xlsx "u podmapi" Charts ". Ako kliknem na U redu, u okviru s porukom vidjet ćemo puni put do mape.

Dakle, ovako, pomoću opcije FileDialog možemo odabrati datoteke iz mape u Excelu. Koristite donji kod za odabir datoteka.

Kodirati:

 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