VBA FileDialog | Hvordan åpne FilesDialog Box ved hjelp av VBA-kode?

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 da VBA brukes til å automatisere arbeidet vårt, kan vi åpne forskjellige andre filer ved hjelp av VBA, og det gjøres ved å bruke Filedialog, den kule delen av å bruke dette 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 vår ene av den tidligere artikkelen "VBA Workbook.Open" har vi vist hvordan du åpner filer med 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.

Du kan laste ned denne VBA FileDialog Excel-malen her - VBA FileDialog Excel-mal

“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 i 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 med uttalelsen, sett en prikk for å se IntelliSense-listen over egenskapene og metodene for FileDialog-alternativet.

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

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

La oss nå endre tittelen på fildialogboksen.

Vi kan la brukeren bare velge en fil om gangen, eller vi kan også tillate dem å velge flere filer også. For dette må vi bruke “Tillat flervalg”.

Vi har to alternativer her. Hvis SANN er valgt, vil det tillate brukeren å velge flere filer hvis det er FALSK brukeren kan 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 standardmappe når fildialogboksen vises. For dette bruker du 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.

Now inside the with statement select “SelectedItems”. Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts”. If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use below code to select the files.

Code:

 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