在我正在开发的业务应用程序中,我们可以导出到Excel,这是我们通过Excel自动化实现的。我们有两种导出方法 - 一种是保存文件,然后将它们附加到Outlook电子邮件中(再次通过自动化);另一个实际上是一个“预览”,它执行导出到Excel,但最后使应用程序可见,而不是保存/发送电子邮件。
报告的一个问题是,当他们预览,不进行任何更改并尝试关闭Excel时,它会提示标准“您是否要保存更改”。他们的意见是,由于他们没有做出任何改变,所以不应该显示这个信息。
是否有任何方法可以抑制此消息,而不是强制保存到我们必须在“稍后”手动清除的位置?
答案 0 :(得分:1)
以下方式对我有用:
Set XLHandle = CreateObject("Excel.Application")
XLHandle.DisplayAlerts = False
XLHandle.Visible = True
Set XLBook = XLHandle.WorkBooks.Open("c:\temp\1.xls")
'This is where your user reviews the book and manually closes it.
'If you want to test out this code set a breakpoint at the next line, manually close Excel workbook then proceed with the execution.
'In your App you would need to implement certain synchronization with user actions instead of setting a breakpoint.
XLHandle.Quit
Set XLBook = Nothing
Set XLHandle = Nothing
这样可以抑制所有弹出窗口。您可以随时访问DisplayAlerts属性,而不仅仅是在创建自动化对象之后。
谢谢你, Albert Gareev
答案 1 :(得分:1)
将Workbook::Saved
属性属性设置为true将阻止Excel提示保存更改(只要您不进行任何后续编辑)
答案 2 :(得分:0)
objWorkbook.Close false
此参数“false”负责SaveChanges
这是否解决了这个问题?
或者,如果您想强制工作簿随时保存,请改为“true”。