Salvați o copie de rezervă a registrului de lucru utilizând VBA în Microsoft Excel

Anonim

Ar trebui să faceți o copie de rezervă a datelor la intervale regulate de timp, deoarece orice modificare greșită de către celălalt utilizator sau ștergerea accidentală a fișierului Excel poate strica o mulțime de timp și informații.

În acest articol, vom prezenta cum să faceți o copie de rezervă a fișierului Excel utilizând VBA.

În acest articol, vom acoperi două moduri diferite de a face backup utilizând codul VBA. Am scris două macrocomenzi pentru efectuarea copiei de rezervă a fișierului Excel.

Macro-ul „SaveWorkbookBackup” va crea o copie de rezervă a fișierului Excel cu extensia „.bak” în același folder în care este salvat registrul de lucru activ.

Macro-ul „SaveWorkbookBackupToFloppy” va crea o copie a registrului de lucru activ în unitatea D care va acționa ca fișier de rezervă pentru registrul de lucru activ.

Explicarea codului

Dacă nu este bine, atunci

MsgBox „Copia de rezervă nu a fost salvată!”, VbExclamation, ThisWorkbook.Name

End If

Codul de mai sus este utilizat pentru afișarea mesajului de eroare, atunci când apare o eroare de execuție în timpul executării macro-ului.

Dacă AWB.Path = "" Atunci

'Se afișează Salvare ca casetă de dialog pentru salvarea fișierelor

Application.Dialogs (xlDialogSaveAs) .Show

Codul de mai sus este utilizat pentru afișarea casetei de dialog Salvare ca, dacă fișierul nu este salvat înainte de a face copie de rezervă a fișierului.

Vă rugăm să urmați codul de mai jos

 Opțiune Explicit Sub SaveWorkbookBackup () Dim AWB ca registru de lucru, BackupFileName ca șir, eu ca întreg, Ok ca boolean la eroare GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Atribuiți calea completă a fișierului de-a lungul numelui fișierului la variabila BackupFileName BackupFileName = AWB.FullName' Verificare fișierul este salvat 'Dacă fișierul nu este salvat, atunci salvarea fișierului If AWB.Path = "" Apoi' Afișarea Salvare ca casetă de dialog pentru salvarea fișierelor Application.Dialogs (xlDialogSaveAs). InStr (i + 1, BackupFileName, ".")> 0 'Găsiți extensia fișierului i = InStr (i + 1, BackupFileName, ".") Wend Dacă i> 0 Apoi BackupFileName = Stânga (BackupFileName, i - 1) 'Adăugarea extensiei de rezervă ".bak" cu numele fișierului BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save' Crearea backupului fișierului .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Cod pentru gestionarea erorilor Set AWB = nimic dacă nu este ok, apoi MsgBox „Copia de rezervă nu a fost salvată!”, 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 'Specificați calea pentru realizarea copiei de rezervă în unitatea D DriveName = "D : \ "'Inițializarea variabilelor Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False' Verificarea dacă fișierul este salvat 'Dacă fișierul nu este salvat, atunci salvarea fișierului Dacă AWB.Path =" "Apoi' Afișare Salvare ca casetă de dialog pentru salvarea fișierului Application.Dialogs (xlDialogSaveAs) .Show Else 'Ștergerea fișierului dacă fișierul de rezervă există deja Dacă Dir (Nume unitate & BackupFileName) "" Apoi ucideți numele Drive & BackupFileName Închideți dacă cu AWB. Salvați' Crearea fișierului de rezervă. Ok = True End With End If NotAbleToSave: 'Cod pentru gestionarea erorilor Set AWB = Nothing if Not OK, apoi MsgBox „Copia de rezervă nu a fost salvată!”, VbExclamation, ThisWorkbook.Name End If End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail