VBA FileDialog | Kako odpreti FilesDialog Box s kodo VBA?

Excel VBA FileDialog

V VBA fieldialog je lastnost, ki se uporablja za predstavitev različnih primerkov, v datotečnem dialogu obstajajo štiri različne vrste konstant, znane kot msofiledialogfilepicker, ki se uporablja za izbiro datoteke z dane poti, druga pa je msofiledialogfolderpicker, iz katerega imena je razvidno, da se uporablja za izbiro mapa in tretja je msofiledialog odprta za odpiranje datoteke, zadnja pa je msofiledialogsaveas, ki se uporablja za shranjevanje datoteke kot nove datoteke.

V določenih okoliščinah želimo podatke iz katere koli druge datoteke ali katerega koli drugega delovnega lista in ker se VBA uporablja za avtomatizacijo našega dela, lahko z uporabo VBA odpremo različne druge datoteke, in to z uporabo Filedialog, kar je kul del uporabe tega metoda je, da nam ni treba navesti poti do kode, temveč uporabnika prosimo, da brska po datoteki.

Kot del projekta VBA bomo morda morali odpreti druge delovne zvezke in z njimi izvesti kakšno nalogo. V enem od prejšnjih člankov »VBA Workbook.Open« smo pokazali, kako odpreti datoteke z določeno potjo in določeno datoteko. Tam smo morali priložiti pot do mape in ime datoteke s pripono. Kaj pa, če mora uporabnik vsakič izbrati različne datoteke iz različnih map. Tu se prikaže možnost »FileDialog«.

Kako deluje možnost VBA FileDialog?

"Če ne veste natančne poti, bo FileDialog našel in izbral datoteko". Namesto da omenimo naslov poti in ime datoteke, lahko ločeno predstavimo pogovorno okno za odpiranje datotek, da izberemo datoteko iz katere koli mape v računalniku.

To predlogo VBA FileDialog Excel lahko prenesete tukaj - Predloga VBA FileDialog Excel

"FileDialog" je objekt v VBA. Če želite najprej uporabiti to možnost, moramo spremenljivko definirati kot FileDialog.

Ko je spremenljivka deklarirana kot »FileDialog«, je spremenljivka predmeta. Za začetek uporabe moramo predmet nastaviti z uporabo Application.FileDialog.

Kot lahko vidimo na zgornji sliki, ima FileDialog štiri možnosti.

  • msoFileDialogFilePicker: Ta možnost pred uporabnikom odpre okno izbirnika datotek, da izbere želeno datoteko po njihovi želji.
  • msoFileDialogFolderPicker: s to možnostjo odprete pogovorno okno ali okno pred uporabnikom, da izberete mapo.
  • msoFileDialogOpen: To bo uporabniku omogočilo, da odpre izbrano datoteko iz mape.
  • msoFileDialogSaveAs: To bo uporabniku omogočilo, da datoteko shrani kot drugo kopijo.

Od zdaj sem izbral možnost msoFileDialogFilePicker.

Zdaj moramo oblikovati pogovorno okno, ki se prikaže pred nami.

Z uporabo izjave lahko oblikujemo pogovorno okno.

V stavku z izjavo postavite piko, da si ogledate seznam lastnosti IntelliSense in lastnosti FileDialog.

Če si želite ogledati samo datoteke excel, ko se odpre pogovorno okno datoteke, moramo najprej odstraniti vse uporabljene filtre.

Zdaj moramo uporabiti nov filter kot »Excelove datoteke« z nadomestnimi priponami datotek excel.

Zdaj pa spremenimo naslov pogovornega okna datoteke.

Uporabniku lahko dovolimo, da izbere samo eno datoteko hkrati, lahko pa tudi, da izbere več datotek. Za to moramo uporabiti “Allow Multi-Select”.

Tu imamo dve možnosti. Če je izbrano TRUE, bo uporabnik lahko izbral več datotek, če je FALSE uporabnik lahko izbere samo eno datoteko hkrati.

Druga stvar, ki jo lahko oblikujemo z FileDialogom, je, da lahko dejansko vztrajamo pri privzeti mapi, ko se prikaže pogovorno okno datoteke. Za to uporabite ime začetne datoteke.

Za to moramo omeniti privzeto mapo, ki naj se odpre naslovna pot.

Zdaj na koncu moramo uporabiti metodo »Pokaži«, da se prikaže pogovorno okno datoteke.

Koda:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Izberite svojo datoteko Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Pokaži End with End Sub

Zdaj zaženite kodo VBA, da vidite rezultat.

Kot lahko vidimo v zgornji slikovni datoteki, je pogovorno okno privzeto odprlo omenjeno mapo.

Zdaj lahko izberemo katero koli podmapo in izberemo datoteke excel.

Oglejte si zgornjo sliko, ker smo parameter filtra uporabili samo kot »Excelove datoteke«.

S tem boste samo izbrali datoteko iz omenjene mape. Za shranjevanje celotne poti moramo še eno spremenljivko prijaviti kot niz.

Zdaj znotraj stavka with izberite »SelectedItems«. Pot mape izbranih elementov dodelite novo definirani spremenljivki.

Zdaj na koncu v polju za sporočila VBA pokažite izbrano pot do mape.

Zdaj bom zagnal program, da vidim pogovorno okno.

Zdaj sem Ime datoteke izbral kot »1. Charts.xlsx «v podmapi» Grafikoni «. Če kliknem V redu, lahko v polju za sporočila vidimo celotno pot do mape.

Tako lahko tako uporabimo možnost FileDialog za izbiro datotek iz mape v Excelu. Za izbiro datotek uporabite spodnjo kodo.

Koda:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile. Datoteka Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Pokaži FileAddress = .SelectedItems (1) Končaj z MsgBox FileAddress End Sub