Сводка
В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос сохранить изменения при закрытии книги. Это можно сделать либо путем указания состояния свойства сохраненной книги, либо путем подавления всех оповещений для книги.
Дополнительные сведения
ПРИМЕЧАНИЕ. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, без явных или подразумеваемых гарантий. Это включает подразумеваемые гарантии товарного состояния или пригодности для конкретной цели, но не ограничивается ими. В этой статье предполагается, что вы знакомы с демонстрируемым языком программирования и инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут помочь объяснить функциональность той или иной процедуры. Однако они не будут изменять эти примеры для предоставления дополнительных функциональных возможностей или создания процедур для удовлетворения ваших конкретных требований.
Чтобы подготовиться к реализации любого из приведенных ниже примеров, сначала выполните следующие действия:-
Запустите Excel и откройте новую книгу.
-
Нажмите ALT+F11, чтобы запустить редактор Visual Basic.
-
В меню Вставка выберите пункт Модуль.
-
Введите пример кода макроса на лист модуля.
-
Нажмите ALT+F11, чтобы вернуться в Excel.
-
В Microsoft Office Excel 2003 и более ранних версиях Excel выберите Макрос в меню Сервис, а затем выберите Пункт Макросы.
В Microsoft Office Excel 2007 щелкните Макросы в группе Код на вкладке Разработчик. Если вкладка Разработчик недоступна, попробуйте сделать следующее: a. Нажмите кнопку Microsoft Office и выберите Пункт Параметры Excel. b. В категории Популярные в разделе Основные параметры для работы с Excel нажмите кнопку Показать. Вкладка Разработчик в поле Лента проверка и нажмите кнопку ОК. -
Выберите нужный макрос и нажмите кнопку Выполнить.
Свойство Сохранено возвращает значение 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. Если это так, книга была изменена с момента последнего сохранения, и эти изменения сохраняются.