Salvare una copia di backup cartella di lavoro utilizzando VBA in Microsoft Excel
È necessario eseguire il backup dei dati a intervalli di tempo regolari poiché qualsiasi modifica errata da parte dell’altro utente o la cancellazione accidentale del file excel potrebbe rovinare molto tempo e informazioni.
In questo articolo, tratteremo come eseguire il backup del file Excel utilizzando VBA.
In questo articolo, tratteremo due diversi modi per eseguire il backup utilizzando il codice VBA. Abbiamo scritto due macro per eseguire il backup del file Excel.
La macro “SaveWorkbookBackup” creerà un backup del file Excel con estensione “.bak” all’interno della stessa cartella in cui viene salvata la cartella di lavoro attiva.
La macro “SaveWorkbookBackupToFloppy” creerà una copia della cartella di lavoro attiva nell’unità D che fungerà da file di backup per la cartella di lavoro attiva.
Spiegazione del codice
If Not Ok Allora MsgBox “Copia di backup non salvata!”, VbExclamation, ThisWorkbook.Name End If Above code viene utilizzato per visualizzare il messaggio di errore, quando si verifica un errore di runtime durante l’esecuzione della macro.
If AWB.Path = “” Allora ‘Visualizzazione della finestra di dialogo Salva con nome per il salvataggio del file Application.Dialogs (xlDialogSaveAs). Il codice precedente viene utilizzato per visualizzare la finestra di dialogo Salva con nome, se il file non viene salvato prima di eseguire il backup del file.
Segui sotto per il codice
Option Explicit Sub SaveWorkbookBackup() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Assign full path of file along file name to variable BackupFileName BackupFileName = AWB.FullName 'Checking whether file is saved 'If file is not saved then saving the file If AWB.Path = "" Then 'Displaying Save as dialog box for file saving Application.Dialogs(xlDialogSaveAs).Show Else 'Removing file extension from file name i = 0 While InStr(i + 1, BackupFileName, ".") > 0 'Find the extension of file i = InStr(i + 1, BackupFileName, ".") Wend If i > 0 Then BackupFileName = Left(BackupFileName, i - 1) 'Adding back up extension ".bak" with file name BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save 'Creating Backup of file .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Code for error handling Set AWB = Nothing If Not Ok Then MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.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 'Specify the path for making back up in D drive DriveName = "D:\" 'Initializing the variables Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False 'Checking whether file is saved 'If file is not saved then saving the file If AWB.Path = "" Then 'Displaying Save as dialog box for file saving Application.Dialogs(xlDialogSaveAs).Show Else 'Deleting file if backup file already exists If Dir(DriveName & BackupFileName) <> "" Then Kill DriveName & BackupFileName End If With AWB .Save 'Creating the back up file .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Code for error handling Set AWB = Nothing If Not Ok Then MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name End If End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]