VBA FileDialog - Hogyan nyitható meg a FilesDialog Box a VBA kód használatával?

Tartalomjegyzék

Excel VBA FileDialog

A VBA-ban a fieldialog egy olyan tulajdonság, amelyet különböző példányok ábrázolására használnak, a filedialogban négy különböző típusú konstans létezik, amelyek msofiledialogfilepicker néven ismertek, amelyet egy fájl kiválasztásához használnak egy adott útvonalról, a második pedig az msofiledialogfolderpicker, amely a név szerint azt választja egy mappa, a harmadik pedig az msofiledialog nyílik meg egy fájl megnyitására, az utolsó pedig az msofiledialogsaveas, amely egy fájl új fájlként történő mentésére szolgál.

Vannak bizonyos esetek, amikor bármilyen más fájlból vagy bármely más munkalapból szeretnénk az adatokat, és mivel a VBA-t használjuk a munkánk automatizálására, a VBA segítségével különböző más fájlokat is megnyithatunk, és ezt a Fájl párbeszédpanel, a hűvös rész segítségével tehetjük meg. A módszer használata az, hogy nem kell megadnunk a kód elérési útját, ehelyett arra kérjük a felhasználót, hogy böngésszen a fájlban.

A VBA projekt részeként szükség lehet más munkafüzetek megnyitására és valamilyen feladat végrehajtására velük. Az egyik korábbi cikkben, a „VBA Workbook.Open” -ben bemutattuk, hogyan lehet megnyitni a megadott elérési utat tartalmazó fájlokat. Itt meg kellett adnunk a mappa elérési útját és a fájl nevét annak kiterjesztésével. De mi van akkor, ha a felhasználónak minden alkalommal ki kell választania a különböző fájlokat a különböző mappákból. Itt jön a képbe a „FileDialog” opció.

Hogyan működik a VBA FileDialog Option?

"Ha nem tudja a pontos elérési utat, a FileDialog megtalálja és kiválasztja a fájlt." Ahelyett, hogy megemlítené az útvonal címét és a fájl nevét, külön bemutathatunk egy fájlnyitó párbeszédablakot a fájl bármelyik mappából történő kiválasztásához.

A „FileDialog” egy objektum a VBA-ban. Ennek az opciónak az első használatához meg kell határoznunk a változót FileDialog néven.

Miután a változót „FileDialog” néven deklaráltuk, ez egy objektumváltozó. Ennek használatához be kell állítanunk az objektumot az Application.FileDialog használatával.

Amint a fenti képen láthatjuk, a FileDialognak négy lehetősége van.

  • msoFileDialogFilePicker: Ez az opció megnyitja a fájlválasztó ablakot a felhasználó előtt, hogy kiválassza a kívánt fájlt a kívánsága szerint.
  • msoFileDialogFolderPicker: Ez az opció megnyitja a párbeszédpanelt vagy ablakot a felhasználó előtt a Mappa kiválasztásához.
  • msoFileDialogOpen: Ez lehetővé teszi a felhasználó számára, hogy megnyissa a kiválasztott fájlt a mappából.
  • msoFileDialogSaveAs: Ez lehetővé teszi a felhasználó számára, hogy más fájlként mentse a fájlt.

Mostantól az msoFileDialogFilePicker opciót választottam.

Most meg kell terveznünk az előttünk megjelenő párbeszédpanelt.

A With Statement használatával megtervezhetjük a párbeszédpanelt.

A utasítással együtt tegyen egy pontot a FileDialog beállítás tulajdonságainak és metódusainak IntelliSense listájának megtekintéséhez.

Ha csak az excel fájlokat szeretnénk látni a fájl párbeszédpanel megnyitásakor, akkor először el kell távolítanunk az alkalmazott szűrőket.

Most új szűrőt kell alkalmaznunk „Excel Files” néven az Excel fájlok helyettesítő karakteres kiterjesztésével.

Most változtassuk meg a fájl párbeszédpanel címét.

Engedélyezhetjük a felhasználónak, hogy egyszerre csak egy fájlt válasszon, vagy azt is, hogy több fájlt is kijelölhessen. Ehhez az „Allow Multi-Select” lehetőséget kell használnunk.

Két lehetőségünk van itt. Ha az IGAZ van kiválasztva, akkor a felhasználó több fájlt is kijelölhet. Ha igen, akkor a FALSE felhasználó egyszerre csak egy fájlt választhat ki.

Egy másik dolog, amelyet a FileDialog segítségével megtervezhetünk, az az, hogy a fájl párbeszédpanel megjelenésekor valóban ragaszkodhatunk ahhoz, hogy mi legyen az alapértelmezett mappa. Ehhez a célhoz a Kezdő fájlnév.

Ehhez meg kell említenünk az alapértelmezett megnyitandó mappa címét.

Végül alkalmaznunk kell a „Megjelenítés” módszert a fájl párbeszédpanel megjelenítéséhez.

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 = "Válassza ki az Excel fájlt !! ! " .AllowMultiSelect = Hamis .InitialFileName = "D: Excel fájlok".

Most futtassa a VBA kódot az eredmény megtekintéséhez.

Amint a fenti képfájlból láthatjuk, a párbeszédpanel alapértelmezés szerint megnyitotta az említett mappát.

Most bármelyik almappát kiválaszthatjuk, és kiválaszthatjuk az excel fájlokat.

Nézze meg a fenti képet, mert a szűrő paramétert csak „Excel Files” -ként alkalmaztuk.

Ez csak kiválasztja a fájlt az említett mappából. A teljes elérési út tárolásához még egy változót kell deklarálnunk stringként.

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 = "Válassza ki Excel fájl!!!" .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Show FileAddress = .SelectedItems (1) Vége MsgBox FileAddress End Sub

érdekes cikkek...