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 dialógového okna Súbor, chladnej časti použitia tejto metódy spočíva v tom, že nemusíme uvádzať cestu ku kódu, ale 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 jednom z predchádzajúcich č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 spomenuli cestu a názov súboru, môžeme osobitne predstaviť dialógové okno na otvorenie súboru, pomocou ktorého vyberieme súbor z ľubovoľného priečinka v počítači.

„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 vložte bodku, aby ste videli zoznam IntelliSense vlastností a metód možnosti FileDialog.

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 mu tiež môžeme povoliť, aby vybral aj viac súborov. Na tento účel musíme použiť možnosť „Povoliť viacnásobný výber“.

Máme tu dve možnosti. Ak je vybratá možnosť TRUE, umožní to používateľovi vybrať viac súborov. Ak je, môže používateľ FALSE zvoliť súčasne iba jeden súbor.

Ďalšou vecou, ​​ktorú môžeme navrhnúť pomocou programu 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. Pre toto použitie, 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ť ako premennú jednu ďalšiu premennú.

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 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Vyberte si Súbor Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Show FileAddress = .SelectedItems (1) Koniec s MsgBox FileAddress End Sub

Zaujímavé články...