我正在vb.net中开发一个使用Microsoft.Office.Interop.Word
在Word文档中打印输出的应用程序。如果我关闭应用程序,我想关闭文档(使用“另存为...”对话框)。如果用户想要在应用程序结束之前关闭文档,则应该可以。一切似乎工作正常,但在结束后(在这两种情况下)我得到这个错误:
此文件正由其他应用程序或用户使用。
(C:... \模板\的Normal.dotm)
我认为问题是文档所有者是应用程序,因此用户无法关闭它......但是当应用程序关闭doc时(使用quit方法)也会发生错误。
我在frmMain_FormClosing
中运行的代码是:
If _objWord IsNot Nothing Then
Try
_objWord.Quit()
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_objDoc)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_objWord)
Catch ex As Exception
End Try
End If
我对Excel也这样做,我没有任何问题。
答案 0 :(得分:0)
添加文档时,请确保使用
Dim d As Word.Document = w.Documents.Add()
而不是
d = New Word.Document 'this syntax can cause a memory leak!'