„Excel VBA FileDialog“
VBA srityje „fieldialog“ yra ypatybė, naudojama įvairiems egzemplioriams reprezentuoti, filedialog yra keturi skirtingi konstantų tipai, kurie vadinami msofiledialogfilepicker, kurie naudojami failui pasirinkti iš duoto kelio, antrasis yra msofiledialogfolderpicker, kurio pavadinimas rodo, kad jis naudojamas pasirinkti aplankas ir trečias yra atidarytas msofiledialog failui atidaryti, o paskutinis yra msofiledialogsaveas, kuris naudojamas failui išsaugoti kaip naują failą.
Yra tam tikrų aplinkybių, kai norime duomenų iš bet kokio kito failo ar bet kurio kito darbalapio, o kadangi VBA naudojama mūsų darbui automatizuoti, galime atidaryti įvairius kitus failus naudodami VBA, ir tai daroma naudojant dialogo langą Failas, puikią dalį naudoti šį metodą yra tai, kad mums nereikia nurodyti kelio į kodą, o mes prašome vartotojo naršyti failą.
Kaip VBA projekto dalį mums gali tekti atidaryti kitas darbo knygas ir atlikti jomis kokią nors užduotį. Viename iš ankstesnių straipsnių „VBA Workbook.Open“ parodėme, kaip atidaryti failus su nurodytu keliu ir konkrečiu failu. Ten turėjome pateikti aplanko kelią ir failo pavadinimą su jo plėtiniu. Bet kas, jei kiekvieną kartą vartotojas turi pasirinkti skirtingus failus iš skirtingų aplankų. Čia paveikslėlyje pateikiama parinktis „FileDialog“.

Kaip veikia „VBA FileDialog“ parinktis?
„Jei nežinote tikslaus kelio,„ FileDialog “suras ir išsirinks jums failą.“ Užuot paminėję kelio adresą ir failo pavadinimą, galime atskirai pateikti failo atidarymo dialogo langą, kad pasirinktumėte failą iš bet kurio kompiuterio aplanko.
„FileDialog“ yra objektas VBA. Norėdami pirmiausia naudoti šią parinktį, turime apibrėžti kintamąjį kaip „FileDialog“.

Kai kintamasis yra deklaruojamas kaip „FileDialog“, jis yra objekto kintamasis. Norėdami pradėti tai naudoti, turime nustatyti objektą naudodami „Application.FileDialog“.

Kaip matome aukščiau esančiame paveikslėlyje, „FileDialog“ turi keturias galimybes.
- „msoFileDialogFilePicker“: ši parinktis atidaro failų rinkiklio langą priešais vartotoją, kad pasirinktumėte norimą failą pagal savo norus.
- „msoFileDialogFolderPicker“: ši parinktis atidaro dialogo langą arba langą priešais vartotoją, kad pasirinktumėte aplanką.
- „msoFileDialogOpen“: tai leis vartotojui atidaryti pasirinktą failą iš aplanko.
- „msoFileDialogSaveAs“: tai leis vartotojui išsaugoti failą kaip kitą kopiją.
Nuo šiol pasirinkau „ msoFileDialogFilePicker “ parinktį .
Dabar turime sukurti dialogo langą, kuris pasirodo priešais mus.
Naudodami „Su pareiškimu“ galime sukurti dialogo langą.

Su teiginiu įdėkite tašką, kad pamatytumėte parinkties „FileDialog“ ypatybių ir metodų sąrašą „IntelliSense“.

Norėdami pamatyti tik „Excel“ failus, kai atsidaro failo dialogo langas, pirmiausia turime pašalinti bet kurį iš taikytų filtrų.

Dabar turime pritaikyti naują filtrą kaip „Excel Files“ su pakaitinių simbolių „Excel“ failų plėtiniu.

Dabar pakeiskime failo dialogo lango pavadinimą.

Mes galime leisti vartotojui pasirinkti tik vieną failą vienu metu arba leisti jiems pasirinkti ir kelis failus. Tam turime naudoti „Leisti kelis pasirinkimus“.

Čia mes turime dvi galimybes. Jei pasirinkta TIESA, tai leis vartotojui pasirinkti kelis failus. Jei taip, FALSE vartotojas vienu metu gali pasirinkti tik vieną failą.
Kitas dalykas, kurį galime sukurti naudodami „FileDialog“, yra tai, kad iš tikrųjų galime reikalauti, koks turėtų būti numatytasis aplankas, kai pasirodys failo dialogo langas. Šiuo tikslu - Pradinis failo pavadinimas.

Tam turime paminėti numatytąjį aplanką, kurį reikia atidaryti adreso keliu.

Dabar, norėdami pamatyti failo dialogo langą, turime pritaikyti metodą „Rodyti“.
Kodas:
Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Pasirinkite savo Excel failą !! ! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Parodymo pabaiga su pabaiga

Dabar paleiskite VBA kodą, kad pamatytumėte rezultatą.

Kaip matome aukščiau esančiame vaizdo failo dialogo lange, pagal numatytuosius nustatymus buvo atidarytas minėtas aplankas.
Dabar galime pasirinkti bet kurį poaplankį ir pasirinkti „Excel“ failus.

Pažvelkite į anksčiau pateiktą vaizdą, nes filtro parametrą pritaikėme tik kaip „Excel Files“.
Tai tiesiog parinks failą iš minėto aplanko. Norėdami išsaugoti visą kelią, turime deklaruoti dar vieną kintamąjį kaip eilutę.

Dabar viduje su sakiniu pasirinkite „SelectedItems“. Priskirkite pasirinktų elementų aplanko kelią naujai apibrėžtam kintamajam.

Dabar pagaliau parodykite pasirinktą aplanko kelią VBA pranešimų laukelyje.

Dabar paleisiu programą, kad pamatyčiau dialogo langą.

Dabar failo pavadinimą pasirinkau kaip „1. Charts.xlsx “poaplankyje„ Charts “. Jei spustelėsiu Gerai, pranešimų laukelyje galime pamatyti visą aplanko kelią.

Taigi, panašiai, mes galime naudoti „FileDialog“ parinktį, kad pasirinktume failus iš „Excel“ aplanko. Norėdami pasirinkti failus, naudokite žemiau pateiktą kodą.
Kodas:
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 = "Pasirinkite „Excel“ failas !!! “ .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Rodyti FileAddress = .SelectedItems (1) Pabaiga su MsgBox FileAddress Pabaiga