Guarde una copia de seguridad de un libro de trabajo usando VBA en Microsoft Excel

Tabla de contenido

Se debe realizar una copia de seguridad de los datos a intervalos regulares de tiempo, 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 una copia 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 activo en la unidad D que actuará como archivo de respaldo para el libro activo.

Explicación del código

Si no está bien, entonces

MsgBox "Copia de seguridad no guardada", vbExclamation, ThisWorkbook.Name

Terminara si

El código anterior se utiliza para mostrar mensajes 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) .Show

El código 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 a continuación para obtener el código

 Opción Explícita Sub SaveWorkbookBackup () Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Asignar la ruta completa del archivo junto con el nombre del archivo a la variable BackupFileName BackupFileName = AWB.FullName' Verificando si El archivo se guarda 'Si el archivo no está guardado, entonces se guarda el archivo Si AWB.Path = "" Entonces' Se muestra el cuadro de diálogo Guardar como para guardar el archivo Application.Dialogs (xlDialogSaveAs). InStr (i + 1, BackupFileName, ".")> 0 'Busque la extensión del archivo i = InStr (i + 1, BackupFileName, ".") Wend If i> 0 Then BackupFileName = Left (BackupFileName, i - 1) 'Añadiendo la extensión de copia de seguridad ".bak" con el nombre de archivo BackupFileName = BackupFileName & ".bak" Ok = False con AWB .Save' Creando copia de seguridad del archivo .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Código para manejo de errores Conjunto AWB = Nada si no está bien, entonces MsgBox "Copia de seguridad no guardada", 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 'Especifique la ruta para realizar la copia de seguridad en la unidad D DriveName = "D : \ "'Inicializando las variables Establecer AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False' Comprobando si el archivo está guardado 'Si el archivo no está guardado, guarde el archivo Si AWB.Path =" "Entonces' Visualizando el cuadro de diálogo Guardar como para archivo guardado Application.Dialogs (xlDialogSaveAs) .Show Else 'Eliminando el archivo si el archivo de respaldo ya existe If Dir (DriveName & BackupFileName) "" Entonces Kill DriveName & BackupFileName End If With AWB .Save' Creando el archivo de respaldo .SaveCopyAs DriveName & BackupFileName Ok = Verdadero End With End If NotAbleToSave: 'Código para manejo de errores Establecer AWB = Nada si no está bien Entonces MsgBox "Copia de seguridad no guardada!", VbExclamation, ThisWorkbook.Name End If End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave