对话框打开退出XLSM时,DisplayAlerts不起作用

问题描述 投票:0回答:1

当应用程序关闭,显示如果我要保存文件弹出。我不想保存文件,并希望它自动关闭。

我以为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
python excel exit win32com xlsm
1个回答
0
投票

the documentation

如果当您使用此方法未保存工作簿是开放的,微软的Excel会显示一个对话框,询问是否要保存更改。您可以通过使用Quit方法之前或由DisplayAlerts属性设置为False保存所有工作簿防止这一点。当此属性为False,当你未保存工作簿退出Microsoft Excel不显示该对话框;它退出而不保存。

如果您设置一个工作簿为True Saved属性,而不工作簿保存到磁盘时,Microsoft Excel将退出时不要求保存工作簿。

也就是说,你在做什么应该工作,实际上在我的测试(只是通过COM打开Excel,设置xl.VisibleTrue,创建一个新的工作簿,进行更改,并试图与不DisplayAlerts集关闭应用程序的工作原理完全没问题到False)。

从这里,你可以尝试

  • 设置SavedTrue为每个打开的工作簿时,由所述文档的建议,或
  • Application.EnableEvents = False

之前退出。

© www.soinside.com 2019 - 2024. All rights reserved.