Microsoft Interops Word вставляет комментарий в ячейку таблицы Crash Word

я хочу открыть документ Word программно с помощью Microsoft.Interop.Word и вставить комментарий в ячейку таблицы. У меня есть начальная и конечная позиции диапазона ячейки. (Range.Start \ Range.End)

Application.ActiveDocument.Select(); // select ative document
Range rg = Application.Selection.Range; // get the range of the current selection (all document)


 if (rg.Tables.Count > 0)
 {

     Microsoft.Office.Interop.Word.Range rngTab = rg;

     //set the coordinate of the Range of the text 
     rngTab.Start = startRng;
     rngTab.End = endRng;


     doc.ActiveWindow.Visible = true;
     rg.Select();
     Application.ActiveDocument.Comments.Add(rngTab, ref commentText);                                           
  }

При вставке комментария Word вылетает


person Francesco Vivaldi    schedule 17.06.2015    source источник
comment
Word вылетает? без сообщения об ошибке? Word установлен правильно? какая версия Word? Добавьте, пожалуйста, ответы на свой вопрос!   -  person JP..t    schedule 17.06.2015
comment
Microsoft Word 2013, Word установлен правильно, и сообщений об ошибках нет, никаких исключений, просто сбой. Microsoft Word перестал работать, затем перезапустите Microsoft Word. Если я вставляю комментарий в плоский текст, он работает хорошо   -  person Francesco Vivaldi    schedule 17.06.2015
comment
Версия Interops 14.0.0.0   -  person Francesco Vivaldi    schedule 17.06.2015


Ответы (1)


Я конвертирую ваш код в паскаль с некоторыми изменениями. Работает нормально, без ошибок! Посмотреть

var WApplication:twordapplication; rg,rngTab:range;
commentText:olevariant;
begin
commentText:='123';
WApplication := twordapplication.Create(form1);
WApplication.Connect;
WApplication.Visible:=true;
WApplication.Activate;
rg:= WApplication.Selection.Range; // get the range of the current selection (all document)
rngTab:= rg;
     //set the coordinate of the Range of the text
     rngTab.Start:= 1;
     rngTab.End_:= 2;
     rg.Select();
     WApplication.ActiveDocument.Comments.Add(rngTab, commentText);// add comment to text
     rngtab:=WApplication.ActiveDocument.Tables.Item(1).cell(2,2).range;
     rngtab.Select();
     WApplication.ActiveDocument.Comments.Add(rngTab, commentText); // add comment to cell in the table
end;
person Ivan.s    schedule 19.06.2015