No olvides que en la informática cualquier problema casi siempere puede tener diversas resoluciones, no obstante nosotros aquí compartimos lo más óptimo y mejor.
Solución:
Creo que su problema es que está cerrando el documento que llama al macro antes de enviar el comando para salir de la aplicación.
Su solución en ese caso es no enviar un comando para cerrar el libro. En su lugar, podría establecer el estado “Guardado” del libro de trabajo en true, que eludiría cualquier mensaje sobre el cierre de un libro no guardado. Nota: esto no guarda el libro de trabajo; simplemente hace que parezca que está guardado.
ThisWorkbook.Saved = True
y luego, justo después
Application.Quit
Para evitar el mensaje de solicitud Guardar, debe insertar esas líneas
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Después de guardar su trabajo, debe usar esta línea para salir de la aplicación Excel
Application.Quit
No simplemente coloque esas líneas en Private Sub Workbook_Open() a menos que tenga que hacer una verificación de condición correcta, de lo contrario, puede estropear su archivo de Excel.
Por motivos de seguridad, cree un módulo para ejecutarlo. Los siguientes son los códigos que puse:
Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
Espero que te ayude a resolver el problema.
Application.Quit
Debería hacer el truco.
Recuerda que puedes difundir esta sección si te ayudó.