Speichern Sie eine Arbeitsmappensicherung mit VBA in Microsoft Excel

Anonim

Man sollte die Daten in regelmäßigen Abständen sichern, da jede falsche Änderung durch den anderen Benutzer oder versehentliches Löschen der Excel-Datei viel Zeit und Informationen verderben kann.

In diesem Artikel erfahren Sie, wie Sie mit VBA ein Backup einer Excel-Datei erstellen.

In diesem Artikel werden zwei verschiedene Möglichkeiten zum Erstellen von Backups mit VBA-Code behandelt. Wir haben zwei Makros geschrieben, um eine Sicherung der Excel-Datei zu erstellen.

Das Makro "SaveWorkbookBackup" erstellt eine Sicherung der Excel-Datei mit der Erweiterung ".bak" im selben Ordner, in dem die aktive Arbeitsmappe gespeichert wird.

Das Makro "SaveWorkbookBackupToFloppy" erstellt eine Kopie der aktiven Arbeitsmappe in Laufwerk D, die als Sicherungsdatei für die aktive Arbeitsmappe dient.

Codeerklärung

Wenn nicht in Ordnung, dann

MsgBox "Sicherungskopie nicht gespeichert!", vbExclamation, ThisWorkbook.Name

Ende Wenn

Der obige Code wird zum Anzeigen von Fehlermeldungen verwendet, wenn während der Ausführung des Makros ein Laufzeitfehler auftritt.

If AWB.Path = "" Then

'Dialogfeld Speichern unter zum Speichern von Dateien anzeigen

Application.Dialogs(xlDialogSaveAs).Show

Der obige Code wird zum Anzeigen des Dialogfelds Speichern unter verwendet, wenn die Datei nicht gespeichert wird, bevor die Sicherung der Datei erstellt wurde.

Bitte folgen Sie unten für den Code

 Option Explicit Sub SaveWorkbookBackup() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Vollständigen Dateipfad entlang des Dateinamens der Variablen zuweisen BackupFileName BackupFileName = AWB.FullName 'Überprüfen, ob file is saved 'Wenn die Datei nicht gespeichert wird, dann wird die Datei gespeichert. If AWB.Path = "" Then 'Anzeige des Dialogfelds Speichern unter zum Speichern der Datei Application.Dialogs(xlDialogSaveAs).Show Else 'Entfernen der Dateierweiterung vom Dateinamen i = 0 Während InStr(i + 1, BackupFileName, ".") > 0 'Finde die Erweiterung der Datei i = InStr(i + 1, BackupFileName, ".") Wend If i > 0 Then BackupFileName = Left(BackupFileName, i - 1) 'Backup-Erweiterung ".bak" mit Dateinamen hinzufügen BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save 'Backup der Datei .SaveCopyAs BackupFileName erstellen Ok = True End With End If NotAbleToSave: 'Code für Fehlerbehandlung Set AWB = Nothing If Not Ok Then MsgBox "Sicherungskopie nicht gespeichert!", 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 'Geben Sie den Pfad für die Sicherung in D an Laufwerk DriveName = "D :\" 'Initialisieren der Variablen Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False 'Überprüfen, ob die Datei gespeichert ist 'Wenn die Datei nicht gespeichert wird, dann die Datei speichern If AWB.Path = "" Then 'Speichern als Dialogfenster anzeigen für Datei speichern Application.Dialogs(xlDialogSaveAs).Show Else 'Datei löschen, wenn Backup-Datei bereits existiert If Dir(DriveName & BackupFileName) "" Then Kill DriveName & BackupFileName End If With AWB .Save 'Backup-Datei erstellen .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Code zur Fehlerbehandlung Set AWB = Nothing If Not Ok Then MsgBox "Sicherungskopie nicht gespeichert!", vbExclamation, ThisWorkbook.Name End If End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site