通过Excel自动化创build文档时,请保存“保存更改”
在我正在开发的一系列业务应用程序中,我们有能力导出到Excel,这是我们通过Excel自动化实现的。 我们有两种导出方法 – 一种是保存文件,然后将它们附加到Outlook电子邮件(通过自动化); 另一个实际上是一个“预览”,它执行导出到Excel,但最终使应用程序可见,而不是保存/电子邮件。
报告中的一个问题是,当他们预览时,不做任何更改,并尝试closuresExcel,它提示标准的“是否要保存您的更改”。 他们的意见是,他们没有做任何改变,所以不应该显示这个信息。
有没有什么方法可以压制这个消息,而不是强制保存到一个我们必须手动清除的位置“在以后的时间点”?
以下方法为我工作:
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
这样你压制所有的popup窗口。 您可以随时访问DisplayAlerts属性,而不仅仅是在创build自动化对象之后。
谢谢Albert Albert
将Workbook::Saved
属性属性设置为true将会阻止Excel提示保存更改(只要不进行任何后续编辑)
如何objWorkbook.Close false
这个参数“false”负责SaveChanges
这是否解决了这个问题?
或者如果你想强制工作簿保存在任何时候把“真”代替。