Cuando has realizado cambios a un libro de Excel y deseas cerrar el libro a través de una macro Excel mostrará inevitablemente un cuadro de diálogo preguntándonos si deseamos guardar los cambios realizados.
Existe varias alternativas para evitar que Excel despliegue dicha advertencia y a continuación mencionaré cada una de ellas:
No mostrar alertas en Excel
Application.DisplayAlerts = False
ThisWorkbook.Close
La instrucción Application.DisplayAlerts = False apaga todas las alertas de Excel para nuestro libro lo cual también incluye la advertencia de guardar los cambios y por lo tanto Excel no la mostrará. Una gran desventaja de este método es que no guarda los cambios hechos previamente y se perderán al momento de cerrar el libro.
Guardar el libro antes de cerrarlo
ThisWorkbook.Save
ThisWorkbook.Close
A diferencia del método anterior, la primera sentencia en este código guarda todos los cambios realizados y posteriormente lo cierra por lo tanto Excel no muestra la advertencia.
Utilizar el argumento SaveChanges
ThisWorkbook.Close SaveChanges:=True
El segundo método era muy bueno pero aún lo podemos mejorar con ésta tercera opción que es utilizar el argumento SaveChanges del método Close que nos permite indicar que deseamos guardar los cambios al cerrar el libro. De esta manera hemos mejorado el código del segundo método al reducirlo a una sola línea.
Al trabajar con macros e intentar cerrar un libro desde código VBA recuerda guardar primero los cambios para evitar desplegar cualquier advertencia y por supuesto para evitar también la pérdida de datos.
Artículos relacionados
Programando en VBA