【发布时间】:2012-12-07 15:23:11
【问题描述】:
我正在使用 MS Interop 为用户打开生成的文件,允许他们对其进行编辑然后关闭它,然后我为他们保存它(这是更大进程的一部分)。由于用户不需要手动保存文件,我想在用户尝试关闭文档时取消该弹出对话框以保存文件。在 DocumentBeforeClose 事件的处理程序中,以下内容似乎对我不起作用:
App.ActiveDocument.Saved = true;
这似乎应该将 Word 文档标记为已保存,但没有。
有人遇到过这个问题吗?
-nomad311
【问题讨论】:
-
事件是否触发?正在关闭的文档是事件处理程序 (
Sub app_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean) 的参数,所以我会简单地尝试Doc.Saved = True -
是的,我可以中断调试方法。 App.ActiveDocument 对同一个 Doc 变量的引用,但我也尝试直接执行此操作,但仍然没有更改:( 我还尝试在将 Save() 设置为 false 和 Quit() 的 Application 对象上调用将 save 设置为 false ...并且没有什么能阻止弹出窗口!!!!!!
-
是否安装了其他可能干扰的 Word 加载项?
-
不,自从我安装这个项目以来,我只在这个项目中使用过 Word。
-
您确定在将 Saved 属性设置为 true 后没有修改文档吗?请尝试以下操作:创建一个新的 Word 文档并键入一些文本,按 Alt+F11 打开 VBA 编辑器,然后按 Ctrl+G 显示即时窗口。现在键入 ActiveDocument.Saved = True 然后返回。然后关闭文档。文档应该会在不提示您保存的情况下关闭。