Применяется к
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 щелкните Макросы в группе Код на вкладке РазработчикЕсли вкладка Разработчик недоступна, попробуйте сделать следующее:     a. Нажмите кнопку Microsoft Office и выберите Пункт Параметры Excel.b. В категории Популярные в разделе Основные параметры для работы с Excel нажмите кнопку Показать.         Вкладка Разработчик в поле Лента проверка и нажмите кнопку ОК

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

Свойство Сохранено возвращает значение False, если в книгу были внесены изменения с момента последнего сохранения.Вы можете использовать зарезервированное имя подпрограммы Auto_Close, чтобы указать макрос, который должен выполняться при закрытии книги. При этом можно управлять обработкой документа, когда пользователь закрывает документы в Excel.  

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

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

    Sub Auto_Close()

        ThisWorkbook.Saved = True

    End Sub

Если для свойства Сохранено задано значение True, 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 этой книги:  

    Sub Auto_Close()

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

            ThisWorkbook.Save End If

    End Sub

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.