VBA Öppna / stäng arbetsbok

I den här självstudien lär du dig hur du använder VBA för att öppna och stänga Excel -arbetsbok på flera sätt.

Med VBA kan du öppna eller stänga filer med standardmetoderna .Öppen och .Stänga.

Om du vill lära dig att kontrollera om det finns en fil innan du försöker öppna filen kan du klicka på den här länken: VBA -fil finns

Öppna en arbetsbok i VBA

Öppna arbetsbok från sökvägen

Om du vet vilken fil du vill öppna kan du ange dess fullständiga sökvägsnamn i funktionen. Här är koden:

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

Denna rad i koden öppnar filen "Provfil 1" från "VBA -mappen".

Öppna arbetsbok - ActiveWorkbook

När du öppnar en arbetsbok blir den automatiskt ActiveWorkbook. Du kan referera till den nyöppnade arbetsboken så här:

1 ActiveWorkbook.Save

När du refererar till ett blad eller område och utelämnar arbetsbokens namn, antar VBA att du hänvisar till ActiveWorkbook:

1 Sheets ("Sheet1"). Namn = "Inmatning"

Öppna arbetsbok och tilldela en variabel

Du kan också öppna en arbetsbok och tilldela den direkt till en objektvariabel. Denna procedur öppnar en arbetsbok för wb variabel och spara sedan arbetsboken.

123456 Sub OpenWorkbookToVariable ()Dim wb Som arbetsbokAnge wb = Workbooks.Open ("C: \ VBA -mapp \ provfil 1.xlsx")wb.SparaAvsluta Sub

Att tilldela variabler arbetsböcker när de öppnas är det bästa sättet att hålla reda på dina arbetsböcker

Arbetsbok Dialogrutan Öppna fil

Du kan också utlösa dialogrutan Öppna fil i arbetsboken. Detta gör att användaren kan navigera till en fil och öppna den:

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

Som du kan se i bild 1 kan användare med denna metod välja vilken fil som ska öppnas. Dialogrutan Öppna fil kan anpassas kraftigt. Du kan som standard välja en viss mapp, välja vilka filtyper som är synliga (ex … xlsx bara) och mer. Läs vår handledning i dialogrutan Öppna fil för detaljerade exempel.

Öppna ny arbetsbok

Denna kodrad öppnar en ny arbetsbok:

1 Arbetsböcker.Lägg till

Öppna ny arbetsbok till variabel

Det här förfarandet öppnar en ny arbetsbok som tilldelar variabeln wb:

1234 Sub OpenNewWorkbook ()Dim wb Som arbetsbokAnge wb = Workbooks.AddAvsluta Sub

Öppna Syntax för arbetsbok

När du använder Workbooks.Open kanske du märker att det finns många alternativ när du öppnar arbetsboken:

Filnamnet krävs. Alla andra argument är valfria - och du behöver förmodligen inte känna till de flesta andra argumenten. Här är de två vanligaste:

Öppna arbetsbok Skrivskyddad

När arbetsboken öppnas skrivskyddad kan du inte spara över den ursprungliga filen. Detta förhindrar att filen redigeras av användaren.

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

Öppna lösenordsskyddad arbetsbok

En arbetsbok kan vara lösenordsskyddad. Använd den här koden för att öppna den lösenordsskyddade arbetsboken:

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

Öppna arbetsbokens syntaxanteckningar

Lägg märke till att i bilden ovan inkluderade vi en parentes “(” för att visa syntaxen. Om du använder parentes när du arbetar med Workbooks.Open måste du tilldela arbetsboken till en variabel:

1234 Sub OpenWB ()Dim wb Som arbetsbokStäll in wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)Avsluta Sub

Stäng en arbetsbok i VBA

Stäng specifik arbetsbok

På samma sätt som att öppna en arbetsbok finns det flera sätt att stänga en fil. Om du vet vilken fil du vill stänga kan du använda följande kod:

1 Workbooks.Close ("C: \ VBA Folder \ Sample file 1.xlsx")

Denna kodrad stänger filen "Provfil 1" om den öppnas. Om inte, kommer det att returnera ett fel, så du bör ta hand om felhantering.

Stäng aktiv arbetsbok

Om du vill stänga den arbetsbok som för närvarande är aktiv, gör den här kodraden det möjligt för dig att göra det:

1 ActiveWorkbook.Close

Stäng alla öppna arbetsböcker

För att stänga alla öppna arbetsböcker kan du helt enkelt använda den här koden:

1 Arbetsböcker. Stäng

Stäng först öppnad arbetsbok

Detta stänger den första öppnade/skapade arbetsboken:

1 Arbetsböcker (1) .Stäng

Ersätt 1 med 2 för att stänga den andra öppnade / skapade arbetsboken och så vidare.

Stäng utan att spara

Detta stänger en arbetsbok utan att spara och utan att visa uppmaningen:

1 ActiveWorkbook.Close -ändringar: = Falskt

Spara och stäng utan uppmaning

På samma sätt kommer detta att spara och stänga en arbetsbok utan att visa uppmaningen att spara:

1 ActiveWorkbook.Close -ändringar: = True

Obs! Det finns flera andra sätt att ange om en arbetsbok ska sparas eller inte och även om du ska visa uppmaningar eller inte. Detta diskuteras mer detaljerat här.

Andra arbetsbok Öppna exempel

Öppna flera nya arbetsböcker

Denna procedur öppnar flera nya arbetsböcker och tilldelar de nya arbetsböckerna till en matris:

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Som arbetsbokDim i As IntegerFör i = 1 till 3Ställ in arrWb (i) = Workbooks.AddNästa iAvsluta Sub

Öppna alla Excel -arbetsböcker i en mapp

Denna procedur öppnar alla Excel -arbetsböcker i en mapp med dialogrutan Öppna fil.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb Som arbetsbokDim dlgFD som FileDialogDim strFolder Som strängDim strFileName som strängAnge dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Om dlgFD.Show = -1 DåstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Ange wb = Workbooks.Open (strFolder & strFileName)strFileName = DirSlingaAvsluta omAvsluta Sub

Kontrollera om en arbetsbok är öppen

Denna procedur testar om en arbetsbok är öppen:

1234567891011 Sub TestByWorkbookName ()Dim wb Som arbetsbokFör varje wb i arbetsböckerIf wb.Name = "New Microsoft Excel Worksheet.xls" DåMsgBox "Hittade det"Avsluta Sub -samtalskoden här, vi lämnar bara för tillfälletAvsluta omNästaAvsluta Sub

Workbook_Open Event

VBA -händelser är "triggers" som säger åt VBA att köra viss kod. Du kan ställa in arbetsbokshändelser för öppna, stänga, innan du sparar, efter spara och mer.

Läs vår Workbook_Open Event -handledning för att lära dig mer om att automatiskt köra makron när en arbetsbok öppnas.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave