È 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.

ArrowBackUpFileCreated

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.

ArrowBackUpCopyCreated

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.

NotSaveDialogBox

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.

SaveAs Dialog Box

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]