Правильный код VBA для закрытия книги без сохранения

Вопрос: Всякий раз, когда код выполняется во время открытия нескольких книг, офис перестает работать с сообщением Microsoft Office Excel перестала работать Windows может попытаться восстановить вашу информацию и перезапустить программу. Что не так с кодом? Я использую MS Office 2007 для Windows7 Private Sub Workbook_BeforeClose(Cancel As Boolean) close_without_saving End Sub Sub close_without_saving() Application.DisplayAlerts = False

Вопрос:

Всякий раз, когда код выполняется во время открытия нескольких книг, офис перестает работать с сообщением

Microsoft Office Excel перестала работать

Windows может попытаться восстановить вашу информацию и перезапустить программу.

Что не так с кодом? Я использую MS Office 2007 для Windows7

Private Sub Workbook_BeforeClose(Cancel As Boolean) close_without_saving End Sub Sub close_without_saving() Application.DisplayAlerts = False ThisWorkbook.Saved = True If Application.Workbooks.Count < 2 Then Application.Quit Else ThisWorkbook.Close End If End Sub Лучший ответ:

Если вы хотите закрыть книгу без внесения изменений. Тогда вы можете использовать такой код в модуле книги ~

Sub Auto_Close() ThisWorkbook.Saved = True End Sub

Вы также можете использовать это для закрытия книги без сохранения изменений.

Sub CloseBook2() ActiveWorkbook.Close savechanges:=False End Sub

Эта процедура может быть прикреплена к кнопке Close X. Рабочая книга никогда не закрывается частично, она всегда будет закрыта со всеми листами, содержащимися в этой книге. DisplayAlerts = False, а впоследствии True может быть включен в процедуру. Это не должно создавать проблемы, такие как

Sub CloseBook() Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub

Оцените статью
Добавить комментарий