代码之家  ›  专栏  ›  技术社区  ›  Rowland Shaw

通过Excel Automation创建文档时取消“保存更改”

  •  2
  • Rowland Shaw  · 技术社区  · 15 年前

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

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

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   Albert Gareev    15 年前

    以下方法对我有效:

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

    谢谢您, 加列夫

    http://automation-beyond.com/

        2
  •  1
  •   Rowland Shaw    14 年前

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

        3
  •  0
  •   Marek    15 年前

    怎么样 objWorkbook.Close false

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

    这能解决问题吗?

    或者如果要强制工作簿在任何时候保存,请改为输入“true”。

    推荐文章