Bruke dialogboks for å åpne og lagre arbeidsboken

Innholdsfortegnelse:

Anonim

Vi vet allerede hvordan vi åpner eller lagrer en Excel -fil i VBA. Vi bruker ganske enkelt Open and SaveAs -metoden for Workbook -objektet. Men det krever hardkoding av filbanen. Men mesteparten av tiden vil du at sluttbrukeren skal velge en fil ved hjelp av GUI eller si Fil Åpne eller Lagre som dialogboks som lar brukeren velge plasseringen av filen visuelt og enkelt.

I denne artikkelen dekker vi koden som brukes for å vise arbeidsbokens åpne dialogboks og lagre som dialogboks.

Jeg har vedlagt en arbeidsbok som du kan laste ned. Arbeidsbok vedlagt denne artikkelen inneholder tre makroer

VBA -kode for å åpne filen ved hjelp av dialogboksen Åpen fil

I denne koden bruker vi GetOpenFilename applikasjonsmetode. Syntaksen til GetOpenFilename -metoden er:

Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])

[FileFilter]: Du kan definere for å vise bare én filtype i velgmappen. Hvis du skriver "Excel-filer, *.xlsx, *.xls, *.xlsm" etc., vil bare excel-filer bli vist fra mappen i dialogboksen for filåpning.

[FilterIndex]:Det er antallet filfiltre du vil bruke.

[Tittel]: Tittelen på dialogboksen.

[ButtonText]:For å spesifisere knappeteksten. Ikke viktig.

[Flervalg]: Det er en boolsk variabel. Hvis du setter den True eller 1, vil du kunne velge mer enn én fil. Hvis du angir den feil, kan du bare velge én fil.

Nok med teorien. La oss gjøre noen staver.

VBA -kode for å åpne en fil om gangen

Alternativ Eksplisitt under OpenOneFile () Dim filnavn som variant 'Viser den åpne filen dialogboksen FileName = Application.GetOpenFilename ("Excel-filer,*. Xls", _ 1, "Velg en fil å åpne",, falsk)' Brukeren gjorde ikke ikke velg en fil Hvis TypeName (FileName) = "Boolean" Deretter avslutter du Sub 'Open the workbook Workbooks.Open FileName End Sub 

Hvordan virker det?

Når du kjører dette kodesegmentet, åpner GetOpenFilename -metoden for applikasjonsobjektet en dialogboks med åpne filer. Tittelen på dialogboksen vil være "Velg en fil å åpne" som vi definerte i koden. Hvis du velger en fil, kjøres Worbook.Open -koden og filen åpnes. Hvis du ikke velger en fil, vil suben gå ut uten å kjøre Workbook.Open -koden.

VBA -kode for å åpne en eller flere filer om gangen

Dette kodesegmentet åpner dialogboksen Åpne filen, men du vil kunne velge mer enn én fil om gangen.

Sub OpenMultipleFiles () Dim FileName As Variant, f As Integer 'Viser den åpne filen dialogboksen FileName = Application.GetOpenFilename ("Excel-filer,*. Xlsx", _ 1, "Velg en eller flere filer som skal åpnes",, True ) 'Brukeren valgte ikke en fil Hvis TypeName (FileName) = "Boolean" Deretter avslutter du Sub' Åpne alle arbeidsbøkene som er valgt av brukeren For f = 1 Til UBound (FileName) Workbooks.Open FileName (f) Next f End Sub 

Vær oppmerksom på at her har vi satt multiselect -variabelen til True. Dette vil muliggjøre flere valg av filen.

VBA -kode for å åpne Lagre som dialogboks

For å åpne en Lagre som -dialogboks bruker vi GetSaveAsFilename -metoden for applikasjonsobjektet. Syntaks for metoden er:

Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])

[InitialFileName]:Det opprinnelige filnavnet. Hvis du ikke gir nytt navn til filen mens du lagrer den, blir filen lagret med dette navnet.

[FileFilter]: Du kan definere for å vise bare én filtype i velgmappen. Hvis du skriver "Excel-filer, *.xlsx, *.xls, *.xlsm" etc., vil bare excel-filer bli vist fra mappen i dialogboksen for filåpning.

[FilterIndex]: Filterindeksen for filen.

[Tittel]:Tittelen på dialogboksen.

[ButtonText]:Dette brukes i Mac -systemet for å endre navnet på knappen.

Følg koden nedenfor

Sub SaveFile () Dim FileName As Variant 'Viser dialogboksen saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel -filer,*. Xls", 1, "Velg mappen og filnavnet")' User didn ' t lagre en fil Hvis TypeName (FileName) = "Boolean" Deretter avslutter du Sub 'Save the workbook ActiveWorkbook.SaveAs FileName End Sub 

SaveFile Macro bruker GetSaveAsFilename -metoden for applikasjonsobjekt for å åpne dialogboksen Lagre som, tilordne filnavnet og velge stedet for lagring av arbeidsboken.

Så ja gutta, dette er hvordan du kan bruke dialogboksen til å åpne og lagre filer ved hjelp av VBA. Jeg håper det var nyttig. Hvis du er i tvil om denne artikkelen eller et annet VBA -tema, kan du spørre i kommentarfeltet nedenfor.

Bruk en lukket arbeidsbok som en database (DAO) ved hjelp av VBA i Microsoft Excel | Hvis du vil bruke en lukket arbeidsbok som en database med DAO -tilkobling, bruker du denne VBA -kodebiten i Excel.

Bruk en lukket arbeidsbok som en database (ADO) ved hjelp av VBA i Microsoft Excel | Hvis du vil bruke en lukket arbeidsbok som en database med ADO -tilkobling, bruker du denne VBA -kodebiten i Excel.

Komme i gang med Excel VBA UserForms | For å sette inn data i databasen bruker vi skjemaer. Excel UserForms er nyttige for å få informasjon fra brukeren. Slik bør du starte med VBA -brukerformer.

Endre verdien/innholdet i flere UserForm-kontroller ved hjelp av VBA i Excel | Bruk denne enkle VBA -kodebiten for å endre innholdet i brukerformkontrollene.

Forhindre at et brukerskjema lukkes når brukeren klikker på x-knappen ved å bruke VBA i Excel | For å forhindre at brukerskjemaet lukkes når brukeren klikker på x -knappen i skjemaet, bruker vi UserForm_QueryClose -hendelsen.

Populære artikler:

50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.

VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.

COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.

Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold