2016-05-03 7 views
0

Der Word-VBA-Makro, den ich in C# umwandelt, hat die folgende Zeile. Ich verwende sehr spezifisch die Close() Methode auf dem Document Objekt. Ich habe keine Frage gefunden, die meine Frage genau beantwortet. Es gibt ähnliche Fragen, wie diese: Compile time warning when using 'Microsoft.Office.Interop.Word._Document.Close'C# -Mehrdeutigkeitsfehler bei Document.Close() beim Konvertieren von VBA-Makro in C#

Aber mit Blick auf es war ich nicht in der Lage, herauszufinden, die genaue Besetzung, die ich verwenden muss.

ActiveDocument.Close wdDoNotSaveChanges 

I umgewandelt, dies zu C# wie folgt aus:

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); 

jedoch in der letzten Zeile ich folgende Zweideutigkeit Fehler:

Ambiguity between method 'Microsoft.Office.Interop.Word._Document.Close(ref object, ref object, ref object)' and non-method 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Using method group.

Natürlich kann ich nicht benennen Sie die Close Methode von Word (ich denke), also habe ich versucht, meine oWordDoc zu werfen, aber nichts scheint zu funktionieren.

Kann jemand etwas Licht darauf werfen, wie man das richtig macht? Vielen Dank.

Antwort

2

Wirf es auf Microsoft.Office.Interop.Word._Document, die dieses Ereignis nicht enthält.

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

Ja, ich versuchte dies: '(Microsoft.Office.Interop.Word._Document) oWordDoc.Close (Word.WdSaveOptions.wdDoNotSaveChanges, oMissing, oMissing);' Aber es gibt einen Compiler-Fehler: **“ Der Typ 'void' kann nicht in 'Microsoft.Office.Interop.Word._Document' konvertiert werden. "** – ib11

+0

Siehe aktualisierte Antwort. – niksofteng

+1

@nikhilvartak Bitte entweder einen Kommentar mit einem Vorschlag hinterlassen, der SLaks bittet, die Änderung einzufügen, oder sie als Ihre Antwort zu veröffentlichen - Sie sollten nicht in Lösungen zu anderen Antworten bearbeiten (obwohl Sie versuchen zu helfen, und es ist wahrscheinlich richtig!) – Rob