VBA FileDialog | Sådan åbnes FilesDialog Box ved hjælp af VBA-kode?

Excel VBA FileDialog

I VBA fieldialog er en egenskab, der bruges til at repræsentere forskellige forekomster, i filenialog er der fire forskellige typer konstanter, der er kendt som msofiledialogfilepicker, som bruges til at vælge en fil fra en given sti, den anden er msofiledialogfolderpicker, hvilket navn antyder bruges til at vælge en mappe og den tredje er msofiledialog åben for at åbne en fil, og den sidste er msofiledialogsaveas, der bruges til at gemme en fil som en ny fil.

Der er visse omstændigheder, hvor vi ønsker data fra enhver anden fil eller ethvert andet regneark, og da VBA bruges til at automatisere vores arbejde, kan vi åbne forskellige andre filer ved hjælp af VBA, og det gøres ved hjælp af Filedialog, den seje del af at bruge dette metoden er, at vi ikke behøver at angive stien til koden i stedet for vi beder brugeren om at gennemse filen.

Som en del af VBA-projektet kan det være nødvendigt at åbne andre projektmapper og udføre en slags opgave med dem. I vores en af ​​den tidligere artikel "VBA Workbook.Open" har vi vist, hvordan man åbner filer med specificeret sti og specifik fil. Der havde vi brug for at give mappestien og filnavnet med dens udvidelse. Men hvad nu hvis hver gang en bruger skal vælge de forskellige filer fra de forskellige mapper. Det er her, "FileDialog" kommer ind i billedet.

Hvordan fungerer VBA FileDialog Option?

“Hvis du ikke kender den nøjagtige sti, finder FileDialog dig og vælger filen”. I stedet for at nævne sti-adresse og filnavn kan vi præsentere et filåbent dialogvindue separat for at vælge filen fra enhver mappe på computeren.

Du kan downloade denne VBA FileDialog Excel-skabelon her - VBA FileDialog Excel-skabelon

"FileDialog" er et objekt i VBA. For at bruge denne indstilling skal vi først definere variablen som FileDialog.

Når variablen er erklæret som “FileDialog”, er den en objektvariabel. For at begynde at bruge dette er vi nødt til at indstille objektet ved hjælp af Application.FileDialog.

Som vi kan se i ovenstående billede, har FileDialog fire muligheder med det.

  • msoFileDialogFilePicker: Denne mulighed åbner vinduet til filvælger foran brugeren for at vælge den ønskede fil efter deres ønske.
  • msoFileDialogFolderPicker: Denne mulighed åbner dialogboksen eller vinduet foran brugeren for at vælge mappen.
  • msoFileDialogOpen: Dette giver brugeren mulighed for at åbne den valgte fil fra mappen.
  • msoFileDialogSaveAs: Dette giver brugeren mulighed for at gemme filen som en anden kopi.

Fra nu af har jeg valgt muligheden for msoFileDialogFilePicker.

Nu skal vi designe dialogboksen, der vises foran os.

Med With Statement kan vi designe dialogboksen.

Inde i med sætningen sæt en prik for at se IntelliSense-listen over egenskaberne og metoderne til FileDialog-indstillingen.

For kun at se excel-filerne, når fildialogboksen åbnes, skal vi først fjerne et af de anvendte filtre.

Nu skal vi anvende et nyt filter som "Excel Files" med jokertegnudvidelse af Excel-filerne.

Lad os nu ændre titlen på fildialogboksen.

Vi kan tillade brugeren kun at vælge en fil ad gangen, eller vi kan også tillade dem at vælge flere filer. Til dette er vi nødt til at bruge “Tillad Multi-Select”.

Vi har to muligheder her. Hvis SAND er valgt, vil det give brugeren mulighed for at vælge flere filer, hvis det er FALSK, at brugeren kun kan vælge en fil ad gangen.

En anden ting, vi kan designe med FileDialog, er, at vi faktisk kan insistere på, hvad der skal være standardmappe, når fildialogboksen vises. Brug dette Initial File Name.

Til dette skal vi nævne den standardmappe, der skal åbnes adressesti.

Nu er vi endelig nødt til at anvende "Vis" -metoden for at se fildialogboksen.

Kode:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Vælg din Excel-fil !! ! " .AllowMultiSelect = Falsk .InitialFileName = "D: \ Excel-filer". Vis slut med slut-sub

Kør nu VBA-koden for at se resultatet.

Som vi kan se i ovenstående billedfil har dialogboksen åbnet den nævnte mappe som standard.

Nu kan vi vælge en hvilken som helst undermappe og vælge excel-filerne.

Se på ovenstående billede, fordi vi kun har anvendt filterparameteren som "Excel-filer".

Dette vælger bare filen fra den nævnte mappe. For at gemme den fulde sti er vi nødt til at erklære en variabel mere som en streng.

Vælg nu "SelectedItems" inde i med-sætningen. Tildel den valgte artikels mappesti til den nyligt definerede variabel.

Vis endelig den valgte mappesti i VBA-meddelelsesfeltet.

Nu kører jeg programmet for at se dialogboksen.

Nu har jeg valgt filnavnet som “1. Charts.xlsx ”i undermappen“ Charts ”. Hvis jeg klikker på OK, kan vi se den fulde mappesti i meddelelsesfeltet.

Så som dette kan vi bruge FileDialog-indstillingen til at vælge filerne fra mappen i Excel. Brug nedenstående kode til at vælge filerne.

Kode:

 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