Cerrar un libro de trabajo sin guardar

Cuando se usa VBA, es común que desee obtener datos de otro archivo de Excel.

En tales casos, generalmente se abre Excel con el método Workbooks.Open para obtener los datos, pero ¿qué pasa cuando necesita cerrar el archivo?

Si solo está haciendo referencia, no es necesario guardar y cerrar el archivo; simplemente cerrarlo es suficiente.

Si guarda innecesariamente, existe la posibilidad de sobrescribir accidentalmente los datos y guardarlos.

Por lo tanto, en esta ocasión, explicaré cómo cerrar un libro de trabajo sin guardarlo usando VBA.

Código a utilizar

Es posible cerrar sin guardar especificando False para el parámetro saveChanges del método Close preparado en la clase Workbook.

Cerrar_un_libro_de_trabajo_sin_guardar
Workbook.close saveChanges:=False

Código de ejemplo

Cerrar el libro de trabajo activo sin guardar

Se puede usar cuando es necesario cerrar un libro de trabajo temporalmente abierto sin guardar, como cuando se reflejan los resultados de una macro en otro libro de trabajo.

Cerrar_el_libro_de_trabajo_activo_sin_guardar
ActiveWorkbook.Close savechanges:=False

Cerrar un archivo de Excel específico sin guardar

Se puede usar cuando se cierra un archivo temporal generado automáticamente por una macro u otro archivo que no necesita ser guardado.

Cerrar_un_archivo_de_Excel_específico_sin_guardar
Dim wb As Workbook
Set wb = Workbooks("Book1.xlsx")

wb.close saveChanges:=False

Cerrar todos los archivos de Excel sin guardar

Esto forzará el cierre de todos los archivos. Tenga en cuenta que los cambios no se guardarán, lo que puede resultar en la pérdida de datos. Si es necesario, asegúrese de guardar durante el proceso según corresponda.

Cerrar_todos_los_archivos_de_Excel_sin_guardar
Dim wb As Workbook
For Each wb In Application.Workbooks
    wb.Close savechanges:=False
Next wb

Ejemplos de uso

Este método puede ser útil en diversas situaciones, como cuando se manejan archivos temporales o se desea evitar guardar datos incorrectos. Por ejemplo, se puede utilizar en los siguientes casos:

  • Cuando se generan archivos temporales durante el procesamiento de macros
  • Cuando se ha editado accidentalmente un archivo abierto
  • Cuando se desea asignar una tecla de acceso rápido para cerrar un archivo sin guardarlo
#Excel #VBA