Deze VBA-zelfstudie behandelt hoe u een bestand kunt opslaan met de opdrachten Opslaan en Opslaan als in VBA.
Werkmap opslaan - VBA
De VBA Save-opdracht slaat een Excel-bestand op dezelfde manier op als klikken op het pictogram Opslaan of met behulp van de snelkoppeling Opslaan (CTRL + S).
Een gespecificeerde werkmap opslaan
Als u een werkmap wilt opslaan, verwijst u naar het werkmapobject en gebruikt u de opdracht Opslaan.
1 | Werkmappen ("savefile.xlsm").Opslaan |
Sla de actieve werkmap op
Opmerking: dit is de huidige actieve werkmap van met in de VBA-code, die verschilt van ThisWorkbook die de actieve code bevat.
Bewaar de werkmap waar de code is opgeslagen
Alle geopende werkmappen opslaan
Dit doorloopt alle geopende werkmappen en slaat ze allemaal op.
12345 | Dim wb als werkboekVoor elke wb In Application.Workbookswb.OpslaanVolgende wb |
Bewaar alle geopende werkmappen die niet zijn geopend ReadOnly
Opmerking: als u een werkmap opent in de modus Alleen-lezen, wordt het bestand niet opgeslagen.
Om het bestand op te slaan, moet u Opslaan als gebruiken en het bestand onder een andere naam opslaan.
1234567 | Dim wb als werkboekVoor elke wb In Application.WorkbooksZo niet wb Alleen-lezen danwb.OpslaanStop alsVolgende wb |
Een werkmap opslaan die is gedefinieerd door een variabele
Hiermee wordt een werkmap opgeslagen die is toegewezen aan een werkmapobjectvariabele.
1234 | Dim wb als werkboekset wb = werkmappen ("savefile.xlsm")wb.save |
Een werkmap opslaan die is gedefinieerd door een tekenreeksvariabele
Hiermee wordt een werkmap opgeslagen waarvan de naam is opgeslagen in een tekenreeksvariabele.
1234 | Dim wbstring als stringwbstring = "bestand opslaan.xlsm"werkmappen(wbstring).opslaan |
Sla een werkmap op die is gedefinieerd in de volgorde waarin deze is geopend.
Opmerking: de eerste geopende werkmap heeft 1, de tweede 2, enz.
Een werkmap opslaan op basis van een celwaarde
Hiermee wordt een werkmap opgeslagen waarvan de naam in een celwaarde wordt gevonden.
1234 | Dim wbstring als stringwbstring = activeworkbook.sheets("sheet1").range("wb_save").valuewerkmappen(wbstring).save |
Opslaan als - VBA
De opdracht VBA Opslaan als slaat een Excel-bestand op als een nieuw bestand, vergelijkbaar met het klikken op het pictogram Opslaan als of het gebruik van de snelkoppeling Opslaan als (Alt > F > A).
Hierboven hebben we alle manieren geïdentificeerd om op te geven welke werkmap moet worden opgeslagen. U kunt exact dezelfde methoden gebruiken om werkmappen te identificeren wanneer u Opslaan als gebruikt.
Opslaan als werkt op dezelfde manier als Opslaan, behalve dat u ook de naam van het nieuwe bestand moet opgeven.
In feite heeft Opslaan als veel potentiële variabelen om te definiëren:
SaveAs-syntaxis:
123 | werkmapobject .SaveAs(FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru,TextCodepage, TextVisualLayout, Local) |
Hieronder vindt u een volledige beschrijving van alle SaveAs-argumenten. Voor nu zullen we ons concentreren op de meest voorkomende voorbeelden.
Opmerking: deze argumenten kunnen worden ingevoerd als tekenreeks met haakjes of als gedefinieerde variabelen.
Opslaan als syntaxisvoorbeelden:
Werkmap Opslaan als - Zelfde map
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "nieuw" |
of
1 | ActiveWorkbook.OpslaanAls "nieuw" |
of
1234 | Dim wbstring als stringwbstring = "nieuw"ActiveWorkbook.SaveAs Bestandsnaam:= wbstring |
Werkmap Opslaan als - Nieuwe map
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\nieuw" |
of
1234 | Dim wbstring als stringwbstring = "C:\nieuw"ActiveWorkbook.SaveAs Bestandsnaam:= wbstring= |
Werkmap Opslaan als - Nieuwe map, bestandsextensie opgeven
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\new.xlsx" |
of
1234 | Dim wbstring als stringwbstring = "C:\nieuw.xlsx"ActiveWorkbook.SaveAs Bestandsnaam:= wbstring |
Werkmap Opslaan als - Nieuwe map, bestandsextensie opgeven - Alt-methode
U kunt het bestandsformaat ook in zijn eigen argument specificeren.
1234 | .xlsx = 51 '(52 voor Mac).xlsm = 52 '(53 voor Mac).xlsb = 50 '(51 voor Mac).xls = 56 '(57 voor Mac) |
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\nieuw", Bestandsindeling:= 51 |
Werkmap Opslaan als - Wachtwoord toevoegen om bestand te openen
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\new.xlsx", Wachtwoord:= "wachtwoord" |
Werkmap Opslaan als - Wachtwoord toevoegen voor schrijfrechten
Als het juiste wachtwoord niet is opgegeven, wordt de werkmap geopend als alleen-lezen
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\new.xlsx", WriteRes:= "wachtwoord" |
Werkmap Opslaan als - Alleen-lezen aanbevolen
TRUE om een berichtvenster weer te geven waarin wordt aanbevolen het bestand alleen-lezen te openen.
1 | ActiveWorkbook.SaveAs Bestandsnaam:= "C:\new.xlsx", ReadOnlyRecommended:= TRUE |
Andere Opslaan als voorbeelden
Maken Opslaan als dialoogvenster
Dit genereert het dialoogvenster Opslaan als, waarin de gebruiker wordt gevraagd het bestand op te slaan.
Houd er rekening mee dat deze eenvoudige code mogelijk niet in alle gevallen geschikt is.
1 | Application.GetSaveAsFilename |
Creëer Opslaan als dialoogvenster met standaard bestandsnaam opgegeven
1 | Application.GetSaveAsFilename InitialFilename:="test.xlsx" |
Creëer Opslaan als dialoogvenster met standaard bestandsnaam opgegeven
1 | Application.GetSaveAsFilename InitialFilename:="test.xlsx" |
Nieuwe werkmap maken en opslaan
Hiermee wordt een nieuwe werkmap gemaakt en deze onmiddellijk opgeslagen.
123456 | Dim wb als werkboekStel wb = Werkmappen in.ToevoegenApplication.DisplayAlerts = Falsewb.SaveAs Bestandsnaam:=”c:\Test1.xlsx”Application.DisplayAlerts = True |
Opslaan van waarschuwingen uitschakelen
Terwijl u werkt met opslaan in VBA, kunt u verschillende bewaarwaarschuwingen of -prompts tegenkomen. Voeg deze regel code toe om waarschuwingen uit te schakelen:
1 | Application.DisplayAlerts=False |
en om waarschuwingen opnieuw in te schakelen:
1 | Application.DisplayAlerts=True |