Sla een werkmapback-up op met VBA in Microsoft Excel

Anonim

Men moet met regelmatige tussenpozen een back-up van de gegevens maken, aangezien elke verkeerde wijziging door de andere gebruiker of het per ongeluk verwijderen van het Excel-bestand veel tijd en informatie kan bederven.

In dit artikel bespreken we hoe u een back-up van een Excel-bestand kunt maken met VBA.

In dit artikel bespreken we twee verschillende manieren om een ​​back-up te maken met VBA-code. We hebben twee macro's geschreven voor het maken van een back-up van een Excel-bestand.

De macro "SaveWorkbookBackup" maakt een back-up van het Excel-bestand met de extensie ".bak" in dezelfde map waarin de actieve werkmap is opgeslagen.

De macro "SaveWorkbookBackupToFloppy" maakt een kopie van de actieve werkmap in station D die zal fungeren als back-upbestand voor de actieve werkmap.

Code uitleg

Zo niet ok dan

MsgBox "Back-upkopie niet opgeslagen!", vbExclamation, ThisWorkbook.Name

Stop als

Bovenstaande code wordt gebruikt voor het weergeven van foutmeldingen, wanneer er een runtime-fout optreedt tijdens de uitvoering van de macro.

Als AWB.Path = "" Dan

'Opslaan als dialoogvenster weergeven voor het opslaan van bestanden

Application.Dialogs(xlDialogSaveAs).Show

Bovenstaande code wordt gebruikt voor het weergeven van het dialoogvenster Opslaan als, als het bestand niet is opgeslagen voordat de back-up van het bestand wordt gemaakt.

Volg hieronder voor de code:

 Optie Explicit Sub SaveWorkbookBackup() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Wijs volledig pad van bestand toe langs bestandsnaam aan variabele BackupFileName BackupFileName = AWB.FullName 'Controleren of bestand is opgeslagen 'Als het bestand niet is opgeslagen, wordt het bestand opgeslagen If AWB.Path = "" Dan 'Opslaan als dialoogvenster voor het opslaan van bestanden wordt weergegeven Application.Dialogs(xlDialogSaveAs).Show Else 'Bestandsextensie verwijderen uit bestandsnaam i = 0 While InStr(i + 1, BackupFileName, ".") > 0 'Zoek de extensie van bestand i = InStr(i + 1, BackupFileName, ".") Wend If i > 0 Then BackupFileName = Left(BackupFileName, i - 1) 'Back-upextensie ".bak" toevoegen met bestandsnaam BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save 'Back-up maken van bestand .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Code voor foutafhandeling Set AWB = Niets Indien niet OK, dan MsgBox "Back-upkopie niet opgeslagen!", vbExclamation, ThisWork book.Name End If End Sub Sub SaveWorkbookBackupToFloppy() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean Dim DriveName As String On Error GoTo NotAbleToSave 'Geef het pad op voor het maken van een back-up in D-station DriveName = "D :\" 'Initialiseren van de variabelen Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False 'Controleren of het bestand is opgeslagen 'Als het bestand niet is opgeslagen, dan het bestand opslaan If AWB.Path = "" Dan 'Opslaan als dialoogvenster weergeven voor bestand opslaan Application.Dialogs(xlDialogSaveAs).Show Else 'Bestand verwijderen als back-upbestand al bestaat If Dir(DriveName & BackupFileName) "" Dan DriveName & BackupFileName beëindigen End If With AWB .Save 'Het back-upbestand maken .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Code voor foutafhandeling Set AWB = Nothing If Not Ok Then MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name End If End Sub 

Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.

We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite