VBA FileDialog | Ako otvoriť priečinok FilesDialog Box pomocou kódu VBA?

Súbor Excel VBA FileDialog

V poli VBA fieldialog je vlastnosť, ktorá sa používa na reprezentáciu rôznych inštancií. V poli filedialog existujú štyri rôzne typy konštánt, ktoré sú známe ako msofiledialogfilepicker, ktorá sa používa na výber súboru z danej cesty, druhá je msofiledialogfolderpicker, ktorého názov naznačuje, že sa používa na výber. priečinok a tretí je msofiledialog open na otvorenie súboru a posledný je msofiledialogsaveas, ktorý slúži na uloženie súboru ako nového súboru.

Existujú určité okolnosti, keď chceme mať údaje z iného súboru alebo iného pracovného hárka, a keďže sa na automatizáciu našej práce používa VBA, môžeme pomocou VBA otvárať rôzne ďalšie súbory, a to pomocou Filedialogu, čo je skvelá časť používania tohto súboru. Metóda spočíva v tom, že nemusíme uvádzať cestu k kódu. Požiadame používateľa, aby súbor prehliadal.

V rámci projektu VBA môžeme požadovať otvorenie ďalších zošitov a vykonanie nejakej úlohy s nimi. V našom jednom zo starších článkov „VBA Workbook.Open“ sme si ukázali, ako otvárať súbory so zadanou cestou a konkrétnym súborom. Tam sme potrebovali dodať cestu k priečinku a názov súboru s jeho príponou. Čo však v prípade, keď musí používateľ vždy vyberať rôzne súbory z rôznych priečinkov. To je miesto, kde sa na obrázku objaví možnosť „FileDialog“.

Ako funguje voľba VBA FileDialog?

"Ak nepoznáš presnú cestu, FileDialog súbor nájde a vyberie ťa." Namiesto toho, aby sme uvádzali adresu a názov súboru, môžeme otvoriť dialógové okno na otvorenie súboru osobitne a vybrať súbor z ľubovoľného priečinka v počítači.

Túto šablónu VBA FileDialog Excel si môžete stiahnuť tu - Šablóna VBA FileDialog Excel

„FileDialog“ je objekt vo VBA. Ak chcete najskôr použiť túto možnosť, musíme definovať premennú ako FileDialog.

Akonáhle je premenná deklarovaná ako „FileDialog“, ide o objektovú premennú. Aby sme to mohli začať používať, musíme nastaviť objekt pomocou Application.FileDialog.

Ako vidíme na obrázku vyššie, FileDialog má štyri možnosti.

  • msoFileDialogFilePicker: Táto možnosť otvorí pred používateľom okno na výber súborov a podľa želania vyberie požadovaný súbor.
  • msoFileDialogFolderPicker: Táto možnosť otvorí dialógové okno alebo okno pred používateľom a vyberie priečinok.
  • msoFileDialogOpen: Toto umožní používateľovi otvoriť vybraný súbor z priečinka.
  • msoFileDialogSaveAs: Toto umožní používateľovi uložiť súbor ako inú kópiu.

Odteraz som vybral možnosť msoFileDialogFilePicker.

Teraz musíme navrhnúť dialógové okno, ktoré sa objaví pred nami.

Pomocou príkazu S výpisom môžeme navrhnúť dialógové okno.

Vo vnútri príkazu with a put point to see the IntelliSense list of the properties and methods of FileDialog option.

Aby sme po otvorení dialógového okna súboru videli iba súbory programu Excel, je potrebné najskôr odstrániť ktorýkoľvek z použitých filtrov.

Teraz musíme použiť nový filter ako „Súbory Excel“ s príponou zástupných súborov programu Excel.

Teraz poďme zmeniť názov dialógového okna súboru.

Môžeme povoliť používateľovi, aby vybral iba jeden súbor súčasne, alebo im môžeme povoliť, aby vybral aj viac súborov. Na tento účel musíme použiť „Povoliť viacnásobný výber“.

Máme tu dve možnosti. Ak je vybratá hodnota TRUE, umožní to používateľovi vybrať viac súborov, ak je to FALŠNÝ, môže používateľ súčasne vyberať iba jeden súbor.

Ďalšou vecou, ​​ktorú môžeme navrhnúť pomocou FileDialog, je, že môžeme skutočne trvať na tom, čo by malo byť predvoleným priečinkom, keď sa zobrazí dialógové okno súboru. Na tento účel použite počiatočný názov súboru.

Za týmto účelom musíme spomenúť predvolený priečinok, ktorý sa má otvoriť, cesta k adrese.

Teraz konečne musíme použiť metódu „Zobraziť“, aby sme zobrazili dialógové okno súboru.

Kód:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Vyberte svoj súbor Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files" .Zobraziť koniec koncovým sub

Teraz spustite kód VBA, aby ste videli výsledok.

Ako vidíme na obrázku vyššie, dialógové okno štandardne otvorilo uvedený priečinok.

Teraz môžeme vybrať ľubovoľný podpriečinok a vybrať súbory programu Excel.

Pozrite sa na obrázok vyššie, pretože sme parameter filtra použili iba ako „súbory programu Excel“.

Týmto iba vyberiete súbor zo spomínaného priečinka. Na uloženie celej cesty musíme deklarovať jednu ďalšiu premennú ako reťazec.

Teraz vo vnútri príkazu with vyberte „SelectedItems“. Priraďte cestu k priečinku vybraných položiek k novo definovanej premennej.

Teraz konečne ukážte cestu k vybranému priečinku v okne správy VBA.

Teraz spustím program, aby som zobrazil dialógové okno.

Teraz som vybral názov súboru ako „1. Charts.xlsx “v podpriečinku„ Grafy “. Ak kliknem na OK, v okne správy sa nám zobrazí celá cesta k priečinku.

Takto teda môžeme pomocou možnosti FileDialog vybrať súbory zo priečinka v programe Excel. Na výber súborov použite nižšie uvedený kód.

Kód:

 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