VBA FileDialog | Kuinka avata FilesDialog Box VBA-koodilla?

Excel VBA FileDialog

VBA: ssa fieldialog on ominaisuus, jota käytetään edustamaan erilaisia ​​instansseja, filedialogissa on neljä erityyppistä vakiota, jotka tunnetaan nimellä msofiledialogfilepicker, jota käytetään tiedoston valitsemiseen tietystä polusta, toinen on msofiledialogfolderpicker, jonka nimen mukaan käytetään valitsemaan kansio ja kolmas on msofiledialog avoin tiedoston avaamiseksi ja viimeinen on msofiledialogsaveas, jota käytetään tiedoston tallentamiseen uutena tiedostona.

Tietyissä tilanteissa haluamme tietoja mistä tahansa muusta tiedostosta tai muusta laskentataulukosta ja koska VBA: ta käytetään työn automatisointiin, voimme avata erilaisia ​​muita tiedostoja VBA: n avulla ja se tapahtuu Filedialogilla, joka on tämän käytön viileä osa menetelmä on, että meidän ei tarvitse antaa polkua koodiin, vaan pyydämme käyttäjää selaamaan tiedostoa.

Osana VBA-projektia saatamme joutua avaamaan muita työkirjoja ja suorittamaan jonkinlaisen tehtävän niiden kanssa. Eräässä aikaisemmassa artikkelissamme "VBA Workbook.Open" olemme osoittaneet, kuinka avataan tiedostot määritetyllä polulla ja tietyllä tiedostolla. Siellä meidän oli toimitettava kansion polku ja tiedostonimi sen laajennuksella. Mutta entä jos käyttäjän on aina valittava eri tiedostot eri kansioista. Tässä tulee "FileDialog" -vaihtoehto kuvaan.

Kuinka VBA FileDialog -vaihtoehto toimii?

"Jos et tiedä tarkkaa polkua, FileDialog löytää ja valitsee sinulle tiedoston". Polkuosoitteen ja tiedostonimen mainitsemisen sijaan voimme näyttää tiedoston avaamisen valintaikkunan erikseen valitaksesi tiedoston mistä tahansa tietokoneen kansiosta.

Voit ladata tämän VBA FileDialog Excel -mallin täältä - VBA FileDialog Excel -malli

“FileDialog” on objekti VBA: ssa. Tämän vaihtoehdon käyttämiseksi meidän on ensin määriteltävä muuttuja nimellä FileDialog.

Kun muuttuja on ilmoitettu nimellä "FileDialog", se on objektimuuttuja. Tämän käytön aloittamiseksi meidän on määritettävä objekti käyttämällä Application.FileDialogia.

Kuten näemme yllä olevasta kuvasta, FileDialogilla on neljä vaihtoehtoa.

  • msoFileDialogFilePicker: Tämä vaihtoehto avaa tiedostonvalitsimen ikkunan käyttäjän edessä valitaksesi haluamasi tiedoston heidän toiveidensa mukaan.
  • msoFileDialogFolderPicker: Tämä vaihtoehto avaa valintaikkunan tai ikkunan käyttäjän edessä valitaksesi kansion.
  • msoFileDialogOpen: Tämän avulla käyttäjä voi avata valitun tiedoston kansiosta.
  • msoFileDialogSaveAs: Tämän avulla käyttäjä voi tallentaa tiedoston eri kopiona.

Tästä lähtien olen valinnut vaihtoehdon msoFileDialogFilePicker.

Nyt meidän on suunniteltava valintaikkuna, joka ilmestyy edessämme.

Käyttämällä lausunnon kanssa voimme suunnitella valintaikkunan.

Aseta lausekkeen kanssa piste nähdäksesi IntelliSense-luettelon FileDialog-vaihtoehdon ominaisuuksista ja menetelmistä.

Jos haluat nähdä vain Excel-tiedostot, kun tiedosto-valintaikkuna avautuu, meidän on ensin poistettava kaikki käytetyt suodattimet.

Nyt meidän on käytettävä uutta suodatinta Excel-tiedostoina, Excel-tiedostojen yleismerkillä.

Vaihdetaan nyt tiedoston valintaikkunan otsikko.

Voimme sallia käyttäjän valita vain yhden tiedoston kerrallaan tai voimme myös sallia heidän valita useita tiedostoja. Tätä varten meidän on käytettävä "Salli monivalinta".

Meillä on kaksi vaihtoehtoa. Jos TOSI on valittu, se antaa käyttäjän valita useita tiedostoja, jos se on EPÄTOSI, käyttäjä voi valita vain yhden tiedoston kerrallaan.

Toinen asia, jonka voimme suunnitella FileDialogilla, on, että voimme itse asiassa vaatia, mikä oletuskansio pitäisi olla, kun tiedosto-valintaikkuna tulee näkyviin. Tätä tarkoitusta varten Initial File Name.

Tätä varten meidän on mainittava avattava oletuskansio osoitepolku.

Nyt lopuksi meidän on sovellettava "Näytä" -menetelmää nähdäksesi tiedoston valintaikkunan.

Koodi:

Sub DoEvents_Example1 () Dim Myfile FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Valitse Excel-tiedosto !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel-tiedostot" .Show End With End Sub

Suorita nyt VBA-koodi nähdäksesi tuloksen.

Kuten voimme nähdä yllä olevasta kuvatiedostosta, valintaikkuna on avannut mainitun kansion oletuksena.

Nyt voimme valita minkä tahansa alikansion ja valita Excel-tiedostot.

Katso yllä olevaa kuvaa, koska olemme soveltaneet suodatinparametriä vain ”Excel-tiedostoina”.

Tämä vain valitsee tiedoston mainitusta kansiosta. Koko polun tallentamiseksi meidän on ilmoitettava yksi muuttuja merkkijonona.

Valitse nyt lausekkeen sisällä “SelectedItems”. Määritä valitun kohteen kansion polku uudelle muuttujalle.

Näytä nyt vihdoin valittu kansiopolku VBA-viestiruudussa.

Nyt aion suorittaa ohjelman nähdäksesi valintaikkunan.

Nyt olen valinnut tiedostonimeksi “1. Charts.xlsx ”alikansiossa“ Charts ”. Jos napsautan OK, voimme nähdä koko kansion polun viestiruudussa.

Joten tällä tavoin voimme käyttää FileDialog-vaihtoehtoa tiedostojen valitsemiseksi Excelin kansiosta. Käytä tiedostoja alla olevan koodin avulla.

Koodi:

Sub DoEvents_Example1 () Dim Myfile FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Valitse Excel-tiedosto!!!" .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files" .Show FileAddress = .SelectedItems (1) Loppu MsgBox FileAddress End Sub

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