通过Excel自动化创建文档时,禁止“保存更改”

时间:2010-02-09 10:51:18

标签: excel automation

在我正在开发的业务应用程序中,我们可以导出到Excel,这是我们通过Excel自动化实现的。我们有两种导出方法 - 一种是保存文件,然后将它们附加到Outlook电子邮件中(再次通过自动化);另一个实际上是一个“预览”,它执行导出到Excel,但最后使应用程序可见,而不是保存/发送电子邮件。

报告的一个问题是,当他们预览,不进行任何更改并尝试关闭Excel时,它会提示标准“您是否要保存更改”。他们的意见是,由于他们没有做出任何改变,所以不应该显示这个信息。

是否有任何方法可以抑制此消息,而不是强制保存到我们必须在“稍后”手动清除的位置?

3 个答案:

答案 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

http://automation-beyond.com/

答案 1 :(得分:1)

Workbook::Saved属性属性设置为true将阻止Excel提示保存更改(只要您不进行任何后续编辑)

答案 2 :(得分:0)

objWorkbook.Close false

怎么样?

此参数“false”负责SaveChanges

这是否解决了这个问题?

或者,如果您想强制工作簿随时保存,请改为“true”。