Запрос "Как отключить сохранение изменений" при закрытии книги в Excel

Применяется к
Excel 2007

Сводка

В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос на сохранение изменений при закрытии книги. Это можно сделать, указав состояние свойства "Сохранено " в книге или подавив все предупреждения для книги.

Дополнительные сведения

ПРИМЕЧАНИЕ. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, без явных или подразумеваемых гарантий. Это включает подразумеваемые гарантии товарного состояния или пригодности для конкретной цели, но не ограничивается ими. В этой статье предполагается, что вы знакомы с демонстрируемым языком программирования и инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут помочь объяснить функциональность той или иной процедуры. Однако они не будут изменять эти примеры для предоставления дополнительных функциональных возможностей или создания процедур для удовлетворения ваших конкретных требований. 

Чтобы подготовиться к реализации любого из приведенных ниже примеров, сначала выполните следующие действия:

  1. Запустите Excel и откройте новую книгу.

  2. Нажмите ALT+F11, чтобы запустить редактор Visual Basic.

  3. В меню Вставка выберите Модуль.

  4. Введите пример кода макроса на листе модуля.

  5. Нажмите ALT+F11, чтобы вернуться в Excel.

  6. В Microsoft Office Excel 2003 и более ранних версиях Excel выберите в меню "Сервис" элемент "Макрос" и щелкните пункт "Макросы".

    В Microsoft Office Excel 2007 щелкните "Макросы " в группе "Код " на вкладке "Разработчик ".

    Если вкладка "Разработчик " недоступна, попробуйте сделать следующее:

        А. Нажмите кнопку Microsoft Office и выберите пункт "Параметры Excel".

        б) Прокрутите списки Избранное и Контактные лица для веб-поддержки. В категории "Популярные" в разделе "Лучшие параметры для работы с Excel" нажмите кнопку "Показать"
            вкладка "Разработчик" в
    поле "Проверка" ленты и нажмите кнопку "ОК".

  7. Выберите нужный макрос и нажмите кнопку "Выполнить".

Свойство "Сохранено" возвращает значение false, если с момента последнего сохранения в книгу были внесены изменения.

Зарезервированное имя Auto_Close подпрограммы можно использовать для указания макроса, который должен выполняться при каждом закрытии книги. Таким образом вы можете управлять обработкой документа при закрытии документа в Excel.
 

Пример 1. Закрытие книги без сохранения изменений

Чтобы принудительно закрыть книгу без сохранения изменений, введите следующий код в модуль Visual Basic этой книги:
 

Подраздел Auto_Close()

ThisWorkbook.Saved = True

End Sub

Если свойство "Сохранено " имеет значение "Истина", Excel реагирует так, как будто книга уже сохранена, а изменения с момента последнего сохранения не произошли.

Для этой же цели можно использовать свойство DisplayAlerts программы. Например, следующий макрос отключает DisplayAlerts , закрывает активную книгу без сохранения изменений, а затем снова включает DisplayAlerts .
 

Sub CloseBook()

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

End Sub

Можно также использовать аргумент SaveChanges метода Close .

Следующий макрос закрывает книгу без сохранения изменений:
 

Sub CloseBook2()

ActiveWorkbook.Close savechanges:=False

End Sub

Пример 2. Закрытие книги и сохранение изменений

Чтобы принудительно сохранить изменения, введите следующий код в модуль Visual Basic этой книги:
 

Подраздел Auto_Close()

Если ThisWorkbook.Saved = False, то

ThisWorkbook.Save End If

End Sub

Эта подпроцедура проверяет, установлено ли свойству "Сохраненный " файла значение False. Если это так, то с момента последнего сохранения в книгу были внесены изменения, и эти изменения сохраняются.