Jurnal de fișiere VBA | Cum se deschide caseta de dialog FilesDs folosind codul VBA?

Dialog fișier Excel VBA

În VBA fieldialog este o proprietate care este utilizată pentru a reprezenta instanțe diferite, în filedialog există patru tipuri diferite de constante care sunt cunoscute sub numele de msofiledialogfilepicker, care este utilizat pentru a selecta un fișier dintr-o cale dată. un folder și al treilea este msofiledialog deschis pentru a deschide un fișier, iar ultimul este msofiledialogsaveas, care este utilizat pentru a salva un fișier ca un fișier nou.

Există anumite circumstanțe în care dorim datele din orice alt fișier sau orice altă foaie de lucru și, deoarece VBA este folosit pentru a automatiza munca noastră, putem deschide alte fișiere folosind VBA și se face folosind Filedialog, partea interesantă a utilizării acestui metoda este că nu trebuie să furnizăm calea către cod, în schimb îi cerem utilizatorului să răsfoiască fișierul.

Ca parte a proiectului VBA, este posibil să avem nevoie să deschidem alte registre de lucru și să executăm un fel de sarcină cu acestea. În unul din articolul anterior „VBA Workbook.Open” am arătat cum să deschidem fișiere cu calea specificată și fișierul specific. Acolo, trebuia să furnizăm calea folderului și numele fișierului cu extensia sa. Dar ce se întâmplă dacă de fiecare dată când un utilizator trebuie să selecteze diferite fișiere din diferite foldere. Aici apare opțiunea „FileDialog”.

Cum funcționează opțiunea VBA FileDialog?

„Dacă nu cunoașteți calea exactă, FileDialog vă va găsi și vă va selecta fișierul”. În loc să menționăm adresa căii și numele fișierului, putem prezenta separat o fereastră de dialog pentru a selecta fișierul din orice folder al computerului.

Puteți descărca acest șablon VBA FileDialog Excel aici - Șablon VBA FileDialog Excel

„FileDialog” este un obiect în VBA. Pentru a utiliza această opțiune mai întâi, trebuie să definim variabila ca FileDialog.

Odată ce variabila este declarată ca „FileDialog” este o variabilă obiect. Pentru a începe să folosim acest lucru, trebuie să setăm obiectul folosind Application.FileDialog.

După cum putem vedea în imaginea de mai sus, FileDialog are patru opțiuni.

  • msoFileDialogFilePicker: Această opțiune deschide fereastra selectorului de fișiere în fața utilizatorului pentru a selecta fișierul dorit în funcție de dorința lor.
  • msoFileDialogFolderPicker: Această opțiune deschide caseta de dialog sau fereastra din fața utilizatorului pentru a selecta folderul.
  • msoFileDialogOpen: Aceasta va permite utilizatorului să deschidă fișierul selectat din folder.
  • msoFileDialogSaveAs: Aceasta va permite utilizatorului să salveze fișierul ca o copie diferită.

De acum, am selectat opțiunea msoFileDialogFilePicker.

Acum trebuie să proiectăm caseta de dialog care apare în fața noastră.

Folosind With Statement putem proiecta caseta de dialog.

În declarația cu, puneți un punct pentru a vedea lista IntelliSense cu proprietățile și metodele opțiunii FileDialog.

Pentru a vedea numai fișierele Excel când se deschide caseta de dialog fișier, trebuie mai întâi să eliminăm oricare dintre filtrele aplicate.

Acum trebuie să aplicăm un filtru nou ca „Fișiere Excel” cu extensia cu metacaracter a fișierelor Excel.

Acum să schimbăm titlul casetei de dialog fișier.

Putem permite utilizatorului să selecteze un singur fișier la un moment dat sau îi putem permite, de asemenea, să selecteze mai multe fișiere. Pentru aceasta, trebuie să folosim „Permiteți selectarea multiplă”.

Avem două opțiuni aici. Dacă este selectat TRUE, acesta va permite utilizatorului să selecteze mai multe fișiere dacă este FALS, utilizatorul poate selecta doar un fișier la un moment dat.

Un alt lucru pe care îl putem proiecta cu FileDialog este că putem insista cu privire la ceea ce ar trebui să fie folderul implicit atunci când apare caseta de dialog a fișierului. Pentru aceasta utilizați Numele inițial al fișierului.

Pentru aceasta, trebuie să menționăm folderul implicit care urmează să fie deschis calea adresei.

Acum, în cele din urmă, trebuie să aplicăm metoda „Afișare” pentru a vedea caseta de dialog a fișierului.

Cod:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Alegeți fișierul Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Fișiere Excel". Afișează sfârșitul cu sfârșitul Sub

Acum rulați codul VBA pentru a vedea rezultatul.

După cum putem vedea în caseta de dialog a fișierului de imagine de mai sus, a fost deschis dosarul menționat în mod implicit.

Acum putem selecta orice subfolder și selectăm fișierele Excel.

Uitați-vă la imaginea de mai sus, deoarece am aplicat parametrul de filtrare numai ca „Fișiere Excel”.

Aceasta va selecta doar fișierul din folderul menționat. Pentru a stoca calea completă, trebuie să declarăm încă o variabilă ca șir.

Acum, în instrucțiunea cu, selectați „SelectedItems”. Alocați calea folderului de elemente selectate variabilei nou definite.

Acum arată în cele din urmă calea folderului selectat în caseta de mesaje VBA.

Acum voi rula programul pentru a vedea caseta de dialog.

Acum am selectat numele fișierului ca „1. Charts.xlsx ”în subfolderul„ Charts ”. Dacă fac clic pe OK, putem vedea calea completă a folderului în caseta de mesaj.

Deci, astfel, putem folosi opțiunea FileDialog pentru a selecta fișierele din folderul din Excel. Utilizați codul de mai jos pentru a selecta fișierele.

Cod:

 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 = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:\Excel Files" .Show FileAddress = .SelectedItems(1) End With MsgBox FileAddress End Sub