Диалоговое окно открывается при выходе из XLSM, DisplayAlerts не работает

Когда приложение закрывается, появляется экран, если я хочу сохранить файл. Я не хочу сохранять файл и хочу, чтобы он автоматически закрывался.

я думал DisplayAlerts = False сделал бы работу, но это не сработает

if os.path.exists("file_name.xlsm"):
    xl=win32com.client.Dispatch("Excel.Application")
    xl.Workbooks.Open(os.path.abspath("file_name.xlsm"))
    xl.Application.Run("module.module")
    sht.range('A1').value = 11
    xl.DisplayAlerts = False 
    xl.Application.Quit() 
    del xl

1 ответ

Из документации:

Если при использовании этого метода открыты несохраненные книги, Microsoft Excel отображает диалоговое окно с вопросом, хотите ли вы сохранить изменения. Это можно предотвратить, сохранив все книги перед использованием метода Quit или установив для свойства DisplayAlerts значение False. Если это свойство имеет значение False, Microsoft Excel не отображает диалоговое окно при выходе из несохраненных книг; он выходит без сохранения их.

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

То есть то, что вы делаете, должно работать, и действительно отлично работает в моем тестировании (просто открытие Excel через COM, настройка xl.Visible в Trueсоздание новой рабочей книги, ее изменение и попытка закрыть приложение с использованием и без DisplayAlerts установлен в False).

Отсюда вы можете попытаться

  • задавать Saved в True за каждую открытую рабочую книгу, как указано в документации, или
  • позволять Application.EnableEvents = False,

до выхода.

Другие вопросы по тегам