Vi ved allerede, hvordan man åbner eller gemmer en Excel -fil i VBA. Vi bruger simpelthen Open and SaveAs -metoden til Workbook -objekt. Men det kræver hård kodning af filens sti. Men det meste af tiden vil du have, at slutbrugeren vælger en fil ved hjælp af GUI eller siger Dialogboksen Fil Åbn eller Gem som giver brugeren mulighed for at vælge placeringen af filen visuelt og let.
I denne artikel dækker vi koden, der bruges til at vise projektmappen åben dialogboks og gemmer som dialogboks.
Jeg har vedhæftet en projektmappe, som du kan downloade. Arbejdsbog knyttet til denne artikel indeholder tre makroer
VBA -kode til at åbne fil ved hjælp af dialogboksen Åbn fil
I denne kode vil vi bruge GetOpenFilename ansøgningsmetode. Syntaksen for GetOpenFilename -metoden er:
Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
[FileFilter]: Du kan definere, at der kun skal vises en slags fil i vælgmappen. Hvis du skriver "Excel-filer, *.xlsx, *.xls, *.xlsm" osv., Vises kun excel-filer fra mappen i dialogboksen filåbning.
[FilterIndex]:Det er antallet af filtre, du vil bruge.
[Titel]: Dialogboksen Titel.
[ButtonText]:Til angivelse af knapteksten. Ikke vigtigt.
[MultiSelect]: Det er en boolsk variabel. Hvis du angiver det True eller 1, vil du kunne vælge mere end én fil. Hvis du angiver det falsk, kan du kun vælge en fil.
Nok med teorien. Lad os lave nogle stave.
VBA -kode til at åbne en fil ad gangen
Mulighed Eksplicit under OpenOneFile () Dim filnavn som variant 'Viser dialogboksen Åbn fil FileName = Application.GetOpenFilename ("Excel-filer,*. Xls", _ 1, "Vælg en fil, der skal åbnes", Falsk)' Bruger gjorde ikke vælg ikke en fil Hvis TypeName (FileName) = "Boolean" Så afslut Sub 'Åbn projektmappen Workbooks.Open FileName End Sub
Hvordan virker det?
Når du kører dette segment af kode, åbner GetOpenFilename -metoden for applikationsobjektet en dialogboks med åbne filer. Titlen på dialogboksen vil være "Vælg en fil, der skal åbnes", som vi definerede i koden. Hvis du vælger en fil, kører Worbook.Open -koden, og filen åbnes. Hvis du ikke vælger en fil, vil suben afslutte uden at køre Workbook.Open -koden.
VBA -kode til at åbne en eller flere filer ad gangen
Dette segment af kode åbner dialogboksen Åbn fil, men du vil kunne vælge mere end én fil ad gangen.
Sub OpenMultipleFiles () Dim FileName As Variant, f As Integer 'Viser den åbne fil-dialogboks FileName = Application.GetOpenFilename ("Excel-filer,*. Xlsx", _ 1, "Vælg en eller flere filer, der skal åbnes",, True ) 'Bruger valgte ikke en fil Hvis TypeName (FileName) = "Boolean" Afslut derefter Sub' Åbn alle de projektmapper, der er valgt af brugeren For f = 1 Til UBound (FileName) Workbooks.Open FileName (f) Næste f Afslut Sub
Bemærk, at vi her har indstillet multiselect -variablen til True. Dette gør det muligt at vælge filen flere gange.
VBA -kode for at åbne Gem som dialogboks
For at åbne en Gem som dialogboks bruger vi GetSaveAsFilename -metoden til Application -objektet. Syntaks for metoden er:
Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
[InitialFileName]:Det oprindelige filnavn. Hvis du ikke omdøber filen, mens du gemmer den, gemmes din fil med dette navn.
[FileFilter]: Du kan definere, at der kun skal vises en slags fil i vælgmappen. Hvis du skriver "Excel-filer, *.xlsx, *.xls, *.xlsm" osv., Vises kun excel-filer fra mappen i dialogboksen Filåbning.
[FilterIndex]: Filens indeks for filen.
[Titel]:Titlen på dialogboksen.
[ButtonText]:Dette bruges i Mac -system til at ændre navnet på knappen.
Følg venligst nedenstående for koden
Sub SaveFile () Dim FileName As Variant 'Viser dialogboksen saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel -filer,*. Xls", 1, "Vælg din mappe og filnavn")' Bruger gjorde ' t gem en fil Hvis TypeName (FileName) = "Boolean" Afslut derefter Sub 'Gem projektmappen ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro bruger GetSaveAsFilename -metoden til programobjekt til at åbne Gem som dialogboks, tildele filnavnet og vælge det sted, hvor projektmappen skal gemmes.
Så ja fyre, sådan kan du bruge dialogboksen til at åbne og gemme filer ved hjælp af VBA. Jeg håber, det var nyttigt. Hvis du er i tvivl om denne artikel eller et andet VBA -emne, så spørg i kommentarfeltet herunder.
Brug en lukket projektmappe som en database (DAO) ved hjælp af VBA i Microsoft Excel | Hvis du vil bruge en lukket projektmappe som en database med DAO -forbindelse, skal du bruge dette VBA -kodestykke i Excel.
Brug en lukket projektmappe som en database (ADO) ved hjælp af VBA i Microsoft Excel | Hvis du vil bruge en lukket projektmappe som en database med ADO -forbindelse, skal du bruge dette VBA -kodestykke i Excel.
Kom godt i gang med Excel VBA UserForms | For at indsætte data i databasen bruger vi formularer. Excel UserForms er nyttige til at få oplysninger fra brugeren. Sådan skal du starte med VBA -brugerformer.
Rediger værdien/indholdet af flere UserForm-kontroller ved hjælp af VBA i Excel | Brug dette enkle VBA -uddrag til at ændre indholdet i brugerformkontrolelementerne.
Undgå, at en brugerformular lukker, når brugeren klikker på x-knappen ved hjælp af VBA i Excel | For at forhindre brugerformularen i at lukke, når brugeren klikker på x -knappen i formularen, bruger vi UserForm_QueryClose -hændelse.
Populære artikler:
50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.
VLOOKUP -funktionen i Excel | Dette er en af de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.
COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.
Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser