Hoe sluit ik een excel-werkmap met vba?
Om een Excel-bestand te sluiten, moet u de “Sluiten”-methode gebruiken. Met deze methode kunt u opgeven of u de wijzigingen wilt opslaan of niet. En als u een bestand wilt opslaan en sluiten dat nog niet is opgeslagen, kunt u het pad opgeven waar u het wilt opslaan voordat u het sluit.
Hier is de syntaxis van de close-methode.
Workbook.Close (SaveChanges, FileName, RouteWorkbook)
Stappen om een werkmap te sluiten
- Geef de werkmap op die u wilt sluiten.
- Gebruik de sluitmethode bij deze werkmap.
- Geef in de codemethode aan of u het bestand wilt opslaan of niet.
- Vermeld aan het einde het pad waar u het bestand wilt opslaan voordat u het sluit.
In deze zelfstudie bekijken we verschillende manieren om een werkmap in Excel te sluiten met behulp van VBA.
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Sluit een werkmap zonder op te slaan
Als u de actieve werkmap wilt opslaan zonder op te slaan, moet u een code als deze gebruiken.
ActiveWorkbook.Close SaveChanges:=False
In deze code heb ik “False” opgegeven voor het argument “SaveChanges”. VBA negeert dus als er wijzigingen in de werkmap zijn die niet zijn opgeslagen. En als u een specifieke werkmap wilt sluiten, kunt u de naam van die werkmap gebruiken. Net als de volgende code.
Workbooks("book1").Close SaveChanges:=False
Als er gegevens in de werkmap staan en u het argument ‘Wijzigingen opslaan’ negeert, geeft Excel een dialoogvenster weer waarin u kunt bevestigen of u de werkmap wilt opslaan of niet. Het punt is dit: het is beter om het argument “SaveChanges” te specificeren, zelfs als het optioneel is.
Sluit een werkmap nadat u deze hebt opgeslagen
Zoals je zag, zit er een argument in de CLOSE-methode om de padlocatie op te geven. Stel dat u de “Book6” wilt opslaan in de map op het bureaublad. Hier is de code die u moet gebruiken.
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Deze code slaat de werkmap “Book6” op in de map die op mijn bureaublad is opgeslagen onder de naam “myFILE.xlsx”. Maar hier is één ding waar u op moet letten: als u al een werkmap met dezelfde naam hebt, wordt dat bestand vervangen door het nieuwe.
Maak je geen zorgen, er is een oplossing die je kunt gebruiken. De volgende code controleert of er een bestand is met de naam die u wilt gebruiken
Sub vba_close_workbook() Dim wbCheck As String wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx") If wbCheck = "" Then Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx" Else MsgBox "Error! Name already used." End If End Sub