Guardar una copia de seguridad de libro con VBA en Microsoft Excel
Se debe realizar una copia de seguridad de los datos a intervalos de tiempo regulares, ya que cualquier modificación incorrecta por parte del otro usuario o la eliminación accidental del archivo de Excel puede arruinar mucho tiempo e información.
En este artículo, cubriremos cómo realizar una copia de seguridad de un archivo de Excel usando VBA.
En este artículo, cubriremos dos formas diferentes de realizar copias de seguridad utilizando el código VBA. Hemos escrito dos macros para realizar copias de seguridad del archivo de Excel.
La macro «SaveWorkbookBackup» creará una copia de seguridad del archivo de Excel con la extensión «.bak» dentro de la misma carpeta donde se guarda el libro activo.
La macro «SaveWorkbookBackupToFloppy» creará una copia del libro de trabajo activo en la unidad D que actuará como archivo de respaldo para el libro de trabajo activo.
Explicación del código
Si no está bien, entonces MsgBox «Copia de seguridad no guardada», vbExclamation, ThisWorkbook.Name End Si el código anterior se utiliza para mostrar el mensaje de error, cuando se produce algún error de tiempo de ejecución durante la ejecución de la macro.
Si AWB.Path = «» Entonces ‘Visualización del cuadro de diálogo Guardar como para guardar archivos Application.Dialogs (xlDialogSaveAs). El código Mostrar anterior se utiliza para mostrar el cuadro de diálogo Guardar como, si el archivo no se guarda antes de realizar la copia de seguridad del archivo.
Siga el código a continuación
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
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]