Spara en arbetsbokssäkerhetskopia med VBA i Microsoft Excel

Anonim

Man bör ta säkerhetskopia av data med jämna mellanrum eftersom eventuell felaktig ändring av den andra användaren eller av misstag att radera Excel -filen kan förstöra mycket tid och information.

I den här artikeln kommer vi att täcka hur du tar säkerhetskopia av Excel -fil med VBA.

I den här artikeln kommer vi att täcka två olika sätt att ta säkerhetskopiering med VBA -kod. Vi har skrivit två makron för att ta säkerhetskopia av Excel -filen.

Makroet "SaveWorkbookBackup" skapar en säkerhetskopia av Excel -fil med tillägget ".bak" i samma mapp där aktiv arbetsbok sparas.

Makroet "SaveWorkbookBackupToFloppy" skapar en kopia av aktiv arbetsbok i enhet D som fungerar som säkerhetskopia för den aktiva arbetsboken.

Kodförklaring

Om inte ok då

MsgBox "Säkerhetskopia sparas inte!", VbExclamation, ThisWorkbook.Name

Avsluta om

Ovanstående kod används för att visa felmeddelanden när något körtidsfel uppstår under körningen av makrot.

Om AWB.Path = "" Då

'Visar dialogrutan Spara som för att spara filer

Application.Dialogs (xlDialogSaveAs) .Visa

Ovanstående kod används för att visa dialogrutan Spara som om filen inte sparas innan säkerhetskopian av filen tas.

Följ koden nedan

 Alternativ Explicit Sub SaveWorkbookBackup () Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Tilldela hela sökvägen till filnamnet till variabeln BackupFileName BackupFileName = AWB.FullName' Kontrollerar om filen sparas 'Om filen inte sparas och sedan sparas filen Om AWB.Path = "" Sedan' Visar dialogrutan Spara som för att spara program.Dialogs (xlDialogSaveAs) .Show Else 'Ta bort filtillägg från filnamn i = 0 Medan InStr (i + 1, BackupFileName, ".")> 0 'Hitta filändelsen i = InStr (i + 1, BackupFileName, ".") Wend If i> 0 Sedan BackupFileName = Left (BackupFileName, i - 1) 'Lägger till tillägget ".bak" med filnamn BackupFileName = BackupFileName & ".bak" Ok = Falskt med AWB .Save' Skapar säkerhetskopiering av fil .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Kod för felhantering Set AWB = Ingenting Om inte OK Då MsgBox "Säkerhetskopia sparas inte!", 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 'Ange sökväg för säkerhetskopiering i D -enhet DriveName = "D : \ "'Initiera variablerna Ange AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = Falskt' Kontrollera om filen är sparad 'Om filen inte sparas och sedan spara filen Om AWB.Path =" "Sedan' Visa Spara som dialogruta för filsparar Application.Dialogs (xlDialogSaveAs) .Show Else 'Tar bort fil om säkerhetskopieringsfilen redan finns Om Dir (DriveName & BackupFileName) "" Därefter Kill DriveName & BackupFileName End If With AWB .Save' Skapa säkerhetskopieringsfilen .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Kod för felhantering Set AWB = Nothing If Not Ok Då MsgBox "Backup Copy Not Saved!", VbExclamation, ThisWorkbook.Name End If End Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen