Я использую c # с .net 4.0 Framework и Office 2010
В настоящее время я пытаюсь выяснить, как закрыть уже открытый документ Word.Я сталкиваюсь с ошибкой с этим кодом:
Microsoft.Office.Interop.Word.Application app = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
foreach (Microsoft.Office.Interop.Word.Document d in app.Documents)
{
if (d.FullName.ToLower() == "OOPOR".ToLower())
{
object saveOption = WdSaveOptions.wdPromptToSaveChanges;
object originalFormat = WdOriginalFormat.wdOriginalDocumentFormat;
object routeDocument = false;
d.Application.Documents.Close(ref saveOption, ref originalFormat, ref routeDocument);
}
}
В настоящее время, когда я запускаю этот код, я не могу попасть в цикл foreach.app.Documents показывает количество «0».и если я устанавливаю точку останова в цикле foreach и смотрю на переменную 'app', она сообщает:
ActiveDocument = '((Microsoft.Office.Interop.Word.ApplicationClass)(app)).ActiveDocument' threw an exception of type 'System.Runtime.InteropServices.COMException' >>
base {System.Runtime.InteropServices.ExternalException} = {"This command is not available because no document is open."}
Это происходит, даже если у меня есть активный документ word.