VBA Åpne / Lukk arbeidsbok

I denne opplæringen lærer du hvordan du bruker VBA til å åpne og lukke Excel -arbeidsbok på flere måter.

VBA lar deg åpne eller lukke filer ved hjelp av standardmetodene .Åpen og .Lukk.

Hvis du vil lære å kontrollere om det finnes en fil før du prøver å åpne filen, kan du klikke på denne lenken: VBA -fil finnes

Åpne en arbeidsbok i VBA

Åpne arbeidsbok fra banen

Hvis du vet hvilken fil du vil åpne, kan du angi hele banenavnet i funksjonen. Her er koden:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx"

Denne linjen i koden åpner "Eksempelfil 1" -fil fra "VBA -mappen".

Åpne arbeidsbok - ActiveWorkbook

Når du åpner en arbeidsbok, blir den automatisk til ActiveWorkbook. Du kan referere til den nylig åpnede arbeidsboken slik:

1 ActiveWorkbook.Save

Når du refererer til et ark eller område og utelater arbeidsboknavnet, antar VBA at du refererer til ActiveWorkbook:

1 Ark ("Ark1"). Navn = "Inndata"

Åpne arbeidsbok og tilordne en variabel

Du kan også åpne en arbeidsbok og tildele den direkte til en objektvariabel. Denne prosedyren åpner en arbeidsbok for wb variabel og lagre deretter arbeidsboken.

123456 Sub OpenWorkbookToVariable ()Dim wb Som arbeidsbokSett wb = Workbooks.Open ("C: \ VBA -mappe \ prøvefil 1.xlsx")wb. lagreSlutt Sub

Å tilordne arbeidsbøker til variabler når de åpnes er den beste måten å holde oversikt over arbeidsbøkene dine

Arbeidsbok Åpne fildialogbok

Du kan også aktivere dialogboksen Åpne fil i arbeidsboken. Dette lar brukeren navigere til en fil og åpne den:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)Slutt Sub

Som du kan se i Bilde 1, kan brukerne med denne tilnærmingen velge hvilken fil som skal åpnes. Dialogboksen Åpen fil kan tilpasses sterkt. Du kan som standard velge en bestemt mappe, velge hvilke filtyper som er synlige (f.eks. Bare xlsx) og mer. Les opplæringen vår i dialogboksen Åpen fil for detaljerte eksempler.

Åpne ny arbeidsbok

Denne kodelinjen åpner en ny arbeidsbok:

1 Arbeidsbøker.Legg til

Åpne ny arbeidsbok til variabel

Denne prosedyren åpner en ny arbeidsbok, og tilordner den til variabel wb:

1234 Sub OpenNewWorkbook ()Dim wb Som arbeidsbokSett wb = Workbooks.AddSlutt Sub

Åpne arbeidsboksyntaks

Når du bruker Workbooks.Open, vil du kanskje legge merke til at det er mange alternativer tilgjengelig når du åpner arbeidsboken:

Filnavnet er nødvendig. Alle andre argumenter er valgfrie - og du trenger sannsynligvis ikke å kjenne de fleste andre argumentene. Her er de to vanligste:

Åpne skrivebok

Når arbeidsboken åpnes skrivebeskyttet, kan du ikke lagre den originale filen. Dette forhindrer at filen redigeres av brukeren.

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",, True

Åpne passordbeskyttet arbeidsbok

En arbeidsbok kan være passordbeskyttet. Bruk denne koden til å åpne den passordbeskyttede arbeidsboken:

1 Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",,, "password"

Åpne arbeidsbokens syntaksnotater

Legg merke til at i bildet ovenfor inkluderte vi en parentes “(” for å vise syntaksen. Hvis du bruker parentes når du arbeider med Workbooks.Open, må du tilordne arbeidsboken til en variabel:

1234 Sub OpenWB ()Dim wb Som arbeidsbokSett wb = Workbooks.Open ("C: \ VBA -mappe \ prøvefil 1.xlsx", True, True)Slutt Sub

Lukk en arbeidsbok i VBA

Lukk spesifikk arbeidsbok

På samme måte som å åpne en arbeidsbok, er det flere måter å lukke en fil på. Hvis du vet hvilken fil du vil lukke, kan du bruke følgende kode:

1 Workbooks.Close ("C: \ VBA -mappe \ prøvefil 1.xlsx")

Denne kodelinjen lukker filen "Eksempelfil 1" hvis den åpnes. Hvis ikke, vil det returnere en feil, så du bør ta vare på feilhåndtering.

Lukk aktiv arbeidsbok

Hvis du vil lukke arbeidsboken som er aktiv for øyeblikket, vil denne kodelinjen gjøre deg i stand til å gjøre det:

1 ActiveWorkbook.Lukk

Lukk alle åpne arbeidsbøker

For å lukke alle åpne arbeidsbøker, kan du bare bruke denne koden:

1 Arbeidsbøker. Lukk

Lukk først åpnet arbeidsbok

Dette lukker den første åpnede/opprettede arbeidsboken:

1 Arbeidsbøker (1) .Lukk

Erstatt 1 med 2 for å lukke den andre åpnede / opprettede arbeidsboken og så videre.

Lukk uten å lagre

Dette lukker en arbeidsbok uten å lagre og uten å vise lagringsmeldingen:

1 ActiveWorkbook.Lukke lagringsendringer: = Falske

Lagre og lukk uten spørsmål

På samme måte vil dette lagre og lukke en arbeidsbok uten å vise lagringsmeldingen:

1 ActiveWorkbook.Close -endringer: = True

Merk: Det er flere andre måter å indikere om du vil lagre eller ikke lagre en arbeidsbok, og også om du vil vise ledetekster eller ikke. Dette diskuteres mer detaljert her.

Andre eksempler på åpne arbeidsbøker

Åpne flere nye arbeidsbøker

Denne prosedyren åpner flere nye arbeidsbøker og tilordner de nye arbeidsbøkene til en matrise:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Som arbeidsbokDim i As IntegerFor i = 1 til 3Sett arrWb (i) = Workbooks.AddNeste jegSlutt Sub

Åpne alle Excel -arbeidsbøker i en mappe

Denne prosedyren åpner alle Excel -arbeidsbøker i en mappe ved hjelp av dialogboksen Åpne fil.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb Som arbeidsbokDim dlgFD Som FileDialogDim strFolder As StringDim strFileName som strengSett dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Hvis dlgFD.Show = -1 DastrFolder = dlgFD.SelectedItems (1) og Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Sett wb = Workbooks.Open (strFolder & strFileName)strFileName = DirLøkkeSlutt omSlutt Sub

Sjekk om en arbeidsbok er åpen

Denne prosedyren vil teste om en arbeidsbok er åpen:

1234567891011 Sub TestByWorkbookName ()Dim wb Som arbeidsbokFor hver wb i arbeidsbøkerIf wb.Name = "New Microsoft Excel Worksheet.xls" DaMsgBox "Fant det"Avslutt Sub -ringekoden her, vi går bare ut for nåSlutt omNesteSlutt Sub

Arbeidsbok_Åpent arrangement

VBA -hendelser er "utløsere" som forteller VBA å kjøre bestemt kode. Du kan sette opp arbeidsbokhendelser for åpen, lukk, før lagring, etter lagring og mer.

Les vår Workbook_Open Event -opplæring for å lære mer om automatisk kjøring av makroer når en arbeidsbok åpnes.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave