Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Suppress“;“保存更改”;通过Excel automation创建文档时_Excel_Automation - Fatal编程技术网

Suppress“;“保存更改”;通过Excel automation创建文档时

Suppress“;“保存更改”;通过Excel automation创建文档时,excel,automation,Excel,Automation,在我正在开发的业务线应用程序中,我们能够导出到Excel,这是通过Excel自动化实现的。我们有两种导出方法-一种是保存文件,然后将其附加到Outlook电子邮件(再次通过自动化);另一种是有效的“预览”,它执行到Excel的导出,但在最后使应用程序可见,而不是保存/发送电子邮件 报告的问题之一是,当他们预览、不做任何更改并尝试关闭Excel时,系统会提示标准的“是否要保存更改”。他们的意见是,因为他们没有做任何更改,所以不应该显示此消息 除了强制保存到一个我们必须在“以后某个时间点”手动清除的

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

报告的问题之一是,当他们预览、不做任何更改并尝试关闭Excel时,系统会提示标准的“是否要保存更改”。他们的意见是,因为他们没有做任何更改,所以不应该显示此消息


除了强制保存到一个我们必须在“以后某个时间点”手动清除的位置之外,是否有任何方法可以抑制此消息?

关于
objWorkbook.Close false

此参数“false”负责保存更改

这能解决问题吗


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

以下方法对我很有效:

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属性,而不仅仅是在创建自动化对象之后

谢谢,, 阿尔伯特·加雷夫


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

但是,我们不想调用
Close()
,因为这样会使工作簿消失,在他们有机会预览输出之前?这也将关闭工作簿,这是我们不希望发生的事情。我们需要Excel应用程序保持打开状态,直到最终用户关闭,然后才提示保存更改。@Rowland。没问题。我刚刚为您更新了代码示例。Excel似乎只是在早些时候抛出了一个错误,设置工作簿::Saved property属性做了正确的事情(如果删除的答案最初建议恢复,它将被适当地升级并接受:)+1感谢您留下关于答案的注释。请自行添加答案,并将其视为最佳答案:)