none
VC 操作EXCEL时会随机出现"另存为"窗口,阻断了程序的运行 RRS feed

  • 问题

  • 由工具是集成到自动化脚本中的,如果出现了"另存为"窗口就需要手动点掉,否则程序无法继续往下执行,最郁闷的是这个问题是随机出现的,很难定位是什么原因造成的.而且也加上了下面的这些代码:

    pobjApp->SetVisible(FALSE); //不可见
    pobjApp->SetDisplayAlerts(FALSE); //不显示警告信息
    pobjApp->SetAlertBeforeOverwriting(FALSE); //覆盖时不提示

    下面是弹出的窗口,请大家帮忙想想办法怎样才能不让这个窗口弹出来....

    2012年1月6日 2:44

答案

  • 你好,

    如果你没有做什么保存操作而跳出另存为对话框的话,那可能的情况是这样的:Office有一个自动保存机制,每隔一段时间,Office会自动尝试保存你的文件,以防意外(比如断电等)导致文件丢失,当自动保存的时候,如果你的文件是新建的,之前没有保存过,这样就会弹出另存为窗口。

    你有两个办法防止这种情况的出现:

    1. 调整自动保存的时间,越长越好(虽然有文件丢失的风险)

    2. 使用Workbook.BeforeSave事件,当文件要被保存的时候,这个事件就会被触发。把这个事件中的Cancel设为True,就会自动取消保存动作,撤销对话框。http://msdn.microsoft.com/en-us/library/ff840057.aspx

    另外如果你有更多相关Excel开发的问题,你可以发到专门的Excel论坛:

    http://social.msdn.microsoft.com/Forums/en-US/exceldev/threads/


    Calvin Gao[MSFT]
    MSDN Community Support | Feedback to us

    2012年1月9日 3:14
  • 先多谢大家的积极帮助.

    我说下这几天对这个问题的发现:

    EXCEL好象在自动保存的时候会生成一个文件(假设是备份文件),它的文件名是随机生成的,如EF28763这种格式,不带扩展名的.正常情况下,这个文件会被EXCEL删除,可是好象有些时候也删除不掉,于是就保留下来了.这样的话就导致下次再自动生成备份文件的时候,就有可能随机到的文件名和上次没有删除掉的文件名是一样的,这样另存为窗口就弹出来了.

    我针对这种情况做了些处理,在打开EXCEL之前先删除该目录下所有不带扩展名的文件.这几天观察下来的确没有出现类似问题了,但具体是否真的是这个原因造成的还需要更长的时间来验证.

    再次感谢大家的帮助...

     

    • 已建议为答案 Helen Zhao 2012年1月11日 9:05
    • 已标记为答案 Helen Zhao 2012年1月16日 1:40
    2012年1月11日 7:15

全部回复

  • 自动化函数SaveAs是有个参数可以让你隐藏窗口的
    0xBAADF00D
    2012年1月8日 13:50
    版主
  • 看看这个

    http://wenku.baidu.com/view/de33d62d7375a417866f8f00.html


    新浪微博http://weibo.com/xianglitian,欢迎围观
    2012年1月9日 0:53
  • 你好,

    如果你没有做什么保存操作而跳出另存为对话框的话,那可能的情况是这样的:Office有一个自动保存机制,每隔一段时间,Office会自动尝试保存你的文件,以防意外(比如断电等)导致文件丢失,当自动保存的时候,如果你的文件是新建的,之前没有保存过,这样就会弹出另存为窗口。

    你有两个办法防止这种情况的出现:

    1. 调整自动保存的时间,越长越好(虽然有文件丢失的风险)

    2. 使用Workbook.BeforeSave事件,当文件要被保存的时候,这个事件就会被触发。把这个事件中的Cancel设为True,就会自动取消保存动作,撤销对话框。http://msdn.microsoft.com/en-us/library/ff840057.aspx

    另外如果你有更多相关Excel开发的问题,你可以发到专门的Excel论坛:

    http://social.msdn.microsoft.com/Forums/en-US/exceldev/threads/


    Calvin Gao[MSFT]
    MSDN Community Support | Feedback to us

    2012年1月9日 3:14
  • 先多谢大家的积极帮助.

    我说下这几天对这个问题的发现:

    EXCEL好象在自动保存的时候会生成一个文件(假设是备份文件),它的文件名是随机生成的,如EF28763这种格式,不带扩展名的.正常情况下,这个文件会被EXCEL删除,可是好象有些时候也删除不掉,于是就保留下来了.这样的话就导致下次再自动生成备份文件的时候,就有可能随机到的文件名和上次没有删除掉的文件名是一样的,这样另存为窗口就弹出来了.

    我针对这种情况做了些处理,在打开EXCEL之前先删除该目录下所有不带扩展名的文件.这几天观察下来的确没有出现类似问题了,但具体是否真的是这个原因造成的还需要更长的时间来验证.

    再次感谢大家的帮助...

     

    • 已建议为答案 Helen Zhao 2012年1月11日 9:05
    • 已标记为答案 Helen Zhao 2012年1月16日 1:40
    2012年1月11日 7:15