VBA FileDialog | Kaip atidaryti „FilesDialog Box“ naudojant VBA kodą?

„Excel VBA FileDialog“

VBA srityje laukas yra ypatybė, naudojama skirtingiems atvejams reprezentuoti, filedialog yra keturi skirtingi konstantų tipai, kurie vadinami msofiledialogfilepicker, kurie naudojami failui pasirinkti iš nurodyto kelio, antrasis yra msofiledialogfolderpicker, kurio pavadinimas rodo, kad jis naudojamas aplankas ir trečias yra atidarytas failas msofiledialog, kad atidarytumėte failą, o paskutinis yra msofiledialogsaveas, kuris naudojamas failui išsaugoti kaip naują failą.

Tam tikromis aplinkybėmis mes norime duomenų iš bet kurio kito failo ar bet kurio kito darbalapio ir kadangi VBA yra naudojama mūsų darbui automatizuoti, mes galime atidaryti įvairius kitus failus naudodami VBA ir tai daroma naudojant „Filedialog“, šaunią šio naudojimo dalį. metodas yra tas, 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 ką daryti, 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.

Šį „VBA FileDialog Excel“ šabloną galite atsisiųsti čia - „VBA FileDialog Excel“ šablonas

„FileDialog“ yra objektas VBA. Norėdami naudoti šią parinktį, pirmiausia 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 „IntelliSense“ parinkties „FileDialog“ savybių ir metodų sąrašą.

Norėdami pamatyti tik „Excel“ failus, kai atidaromas failo dialogo langas, pirmiausia turime pašalinti visus pritaikytus filtrus.

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 „Allow Multi-Select“.

Čia mes turime dvi galimybes. Jei pasirinkta TIESA, vartotojui bus leidžiama pasirinkti kelis failus, jei 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. Tam naudokite pradinį failo pavadinimą.

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 nutylėjimą 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 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, norėdami pasirinkti failus iš aplanko „Excel“, galime naudoti „FileDialog“ parinktį. Norėdami pasirinkti failus, naudokite žemiau esantį 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

$config[zx-auto] not found$config[zx-overlay] not found