Excel VBA FileDialog
I VBA feltialog er en egenskap som brukes til å representere forskjellige forekomster, i arkivlogg er det fire forskjellige typer konstanter som er kjent som msofiledialogfilepicker som brukes til å velge en fil fra en gitt bane, den andre er msofiledialogfolderpicker som navnet antyder brukes til å plukke en mappe og den tredje er msofiledialog åpen for å åpne en fil, og den siste er msofiledialogsaveas som brukes til å lagre en fil som en ny fil.
Det er visse omstendigheter der vi vil ha dataene fra en hvilken som helst annen fil eller et annet regneark, og når VBA brukes til å automatisere arbeidet vårt, kan vi åpne forskjellige andre filer ved hjelp av VBA, og det gjøres ved å bruke File-dialogboksen, den kule delen å bruke denne metoden er at vi ikke trenger å oppgi stien til koden, i stedet ber vi brukeren om å bla gjennom filen.
Som en del av VBA-prosjektet kan vi kreve å åpne andre arbeidsbøker og utføre en slags oppgave med dem. I en av de tidligere artiklene, "VBA Workbook.Open", har vi vist hvordan du åpner filer med en spesifisert bane og spesifikk fil. Der trengte vi å levere mappebanen og filnavnet med utvidelsen. Men hva om hver gang en bruker må velge de forskjellige filene fra de forskjellige mappene. Det er her alternativet “FileDialog” kommer inn i bildet.

Hvordan fungerer VBA FileDialog Option?
"Hvis du ikke vet den nøyaktige banen, vil FileDialog finne og velge filen for deg." I stedet for å nevne stiadressen og filnavnet, kan vi presentere et filåpent dialogvindu separat for å velge filen fra hvilken som helst mappe på datamaskinen.
“FileDialog” er et objekt i VBA. For å bruke dette alternativet først, må vi definere variabelen som FileDialog.

Når variabelen er erklært som "FileDialog", er den en objektvariabel. For å begynne å bruke dette, må vi stille inn objektet ved å bruke Application.FileDialog.

Som vi kan se på bildet ovenfor, har FileDialog fire alternativer med seg.
- msoFileDialogFilePicker: Dette alternativet åpner filvelgervinduet foran brukeren for å velge ønsket fil etter eget ønske.
- msoFileDialogFolderPicker: Dette alternativet åpner dialogboksen eller vinduet foran brukeren for å velge mappe.
- msoFileDialogOpen: Dette lar brukeren åpne den valgte filen fra mappen.
- msoFileDialogSaveAs: Dette vil tillate brukeren å lagre filen som en annen kopi.
Fra nå av har jeg valgt muligheten for msoFileDialogFilePicker.
Nå må vi designe dialogboksen som vises foran oss.
Ved å bruke With Statement kan vi designe dialogboksen.

Inne i setningen, sett en prikk for å se IntelliSense-listen over egenskapene og metodene til FileDialog-alternativet.

For å bare se excel-filene når fildialogboksen åpnes, må vi først fjerne alle filtrene som er brukt.

Nå må vi bruke et nytt filter som "Excel Files" med jokertegnforlengelse av Excel-filene.

La oss nå endre tittelen på fildialogboksen.

Vi kan tillate brukeren å velge bare én fil om gangen, eller vi kan også tillate dem å velge flere filer også. For dette må vi bruke "Tillat multivalg".

Vi har to alternativer her. Hvis SANN er valgt, vil det tillate brukeren å velge flere filer. Hvis det er tilfelle, kan den FALSE brukeren bare velge en fil om gangen.
En annen ting vi kan designe med FileDialog er at vi faktisk kan insistere på hva som skal være standardmappen når fildialogboksen vises. For denne bruken, Initial File Name.

For dette må vi nevne standardmappen som skal åpnes adressebane.

Nå endelig, må vi bruke "Vis" -metoden for å 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 = "Velg din Excel-fil !! ! " .AllowMultiSelect = Falsk .InitialFileName = "D: Excel-filer". Vis slutt med sluttub

Kjør nå VBA-koden for å se resultatet.

Som vi kan se i dialogboksen over bildefiler, har den nevnte mappen åpnet som standard.
Nå kan vi velge hvilken som helst undermappe og velge excel-filene.

Se på bildet ovenfor fordi vi bare har brukt filterparameteren som "Excel-filer".
Dette vil bare velge filen fra den nevnte mappen. For å lagre hele banen må vi erklære en variabel til som en streng.

Nå inne i setningen, velg "SelectedItems." Tilordne den valgte elementmappestien til den nylig definerte variabelen.

Vis endelig den valgte mappestien i VBA-meldingsboksen.

Nå skal jeg kjøre programmet for å se dialogboksen.

Nå har jeg valgt filnavnet som “1. Charts.xlsx ”i undermappen“ Charts. ” Hvis jeg klikker på OK, kan vi se hele mappestien i meldingsboksen.

Så som dette kan vi bruke FileDialog-alternativet til å velge filene fra mappen i Excel. Bruk koden nedenfor for å velge filene.
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 = "Velg din Excel-fil !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Vis FileAddress = .SelectedItems (1) Avslutt med MsgBox FileAddress End Sub