Как для подавления запроса «Сохранить изменения» при закрытии книги Excel


Аннотация


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

Дополнительная информация


Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без гарантии или подразумеваемых. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры. Тем не менее они не изменит примеров для обеспечения функциональных возможностей или создания процедур для определенных требований. Чтобы использовать любой из приведенных ниже примеров, выполните следующие действия:
  1. Запустите Excel и откройте новую книгу.
  2. Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.
  3. В меню Вставка выберите команду Модуль.
  4. Пример макроса введите в окне модуля.
  5. Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
  6. В Microsoft Office Excel 2003 и в более ранних версиях Excel в меню Сервис выберите пункт макрос и выберите команду макросы. В Microsoft Office Excel 2007 нажмите кнопку макросы в группу кода на вкладкезаметкиразработчика , если вкладка Разработчик недоступна, попробуйте следующие действия:
    1. Нажмите кнопку Microsoft Office, затем нажмите кнопку Параметры Excel.
    2. В категории Основные в группе Основные параметры работы с Excelустановите флажок Показывать вкладку разработчика на ленте и нажмите кнопку ОК.
  7. Выберите нужный макрос и нажмите кнопку выполнить.
Свойство Saved возвращает значение False , если в книгу были внесены изменения с момента последнего сохранения. Имя зарезервировано подпрограммы «Auto_Close» можно использовать для указания макроса, который следует выполнять при каждом закрытии книги. В этом случае можно управлять, как обрабатывается документ, когда пользователь завершил работу и предписывает Microsoft Excel, чтобы закрыть документ.

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

Чтобы закрыть книгу без сохранения изменений, введите следующий код в модуль Visual Basic:
Sub Auto_Close()    ThisWorkbook.Saved = TrueEnd Sub
Так как флагу Сохранено было присвоено значение True, приложение Excel продолжит работать, будто книга уже была сохранена, и никаких изменений с момента последнего сохранения не произошло. Для той же цели можно использовать свойство DisplayAlerts программы. Например следующий макрос отключает DisplayAlerts , закрывает активную книгу без сохранения изменений и затем включает DisplayAlerts еще раз.
Sub CloseBook()    Application.DisplayAlerts = False    ActiveWorkbook.Close    Application.DisplayAlerts = TrueEnd Sub
Можно также использовать метод Close аргумента SaveChanges . Следующий макрос закрывает книгу без сохранения изменений:
Sub CloseBook2()    ActiveWorkbook.Close savechanges:=FalseEnd Sub

Пример 2: Закрыть книгу и сохранить изменения

Чтобы принудительно сохранить изменения в книге, введите следующий код в модуль Visual Basic этой книги:
Sub Auto_Close()    If ThisWorkbook.Saved = False Then        ThisWorkbook.Save    End IfEnd Sub
Это subprocedure проверяет, если свойство сохраненный файл имеет значение False. Если это так, книга была изменена с момента последнего сохранения, и эти изменения сохраняются.