将VBA宏转换为C#时,Document.Close()上的C#歧义错误

时间:2016-05-03 03:20:42

标签: c# vba ms-word office-interop office-automation

我要转换为C#的Word VBA宏具有以下行。 我非常专门地在Close()对象上使用Document方法。我没有发现任何问题可以完全回答我的问题。还有类似的问题,例如:Compile time warning when using 'Microsoft.Office.Interop.Word._Document.Close'

但是看着它,我无法弄清楚我必须使用的确切演员表。

ActiveDocument.Close wdDoNotSaveChanges

我将此转换为C#,如下所示:

using Microsoft.Office;
using Microsoft.Office.Interop;
using Word = Microsoft.Office.Interop.Word;

Object oMissing = System.Reflection.Missing.Value;
Word.Document oWordDoc = new Word.Document();

oWordDoc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, oMissing, oMissing);

然而,在最后一行,我得到以下歧义错误:

  

方法之间的歧义   ' Microsoft.Office.Interop.Word._Document.Close(ref object,ref object,   ref object)'和非方法   ' Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close&#39 ;.运用   方法组。

显然我无法重命名Close Word的方法(我猜),所以我试图投射oWordDoc,但似乎没有任何效果。

有人可以说明如何做到这一点吗?谢谢。

1 个答案:

答案 0 :(得分:2)

将其投放到Microsoft.Office.Interop.Word._Document,但不包含该事件。

((Microsoft.Office.Interop.Word._Document)oWordDoc).Close(Word.WdSaveOptions.wdDo‌​NotSaveChanges, oMissing, oMissing);