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