2013-08-07 2 views
0

Im пытается заменить этот надстрочный текст текстом, но когда я попытался получить ошибку свойства или индексаторов 'Microsoft.Office.Interop.Word.Find.Replacement' cannot be assigned to - -it is read only. Извините, я просто новый в обработке текстовых документов.Заменить ссылочный идентификатор

 wordDoc.ActiveWindow.Selection.Find.Font.Superscript = -1; 
     object forward = true; 
     object wrap = WdFindWrap.wdFindStop; 
     object format = true; 
     object matchCase = false; 
     object matchWholeWord = false; 
     object matchWildcards = false; 
     object matchSoundsLike = false; 
     object matchAllWordForms = false; 


     // Search all numeric superscripts 
     while (wordDoc.ActiveWindow.Selection.Find.Execute(ref missing, ref matchCase, ref matchWholeWord, ref matchWildcards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) 
     { 

      // Look for Numbered References 
      if (Regex.IsMatch((wordDoc.ActiveWindow.Selection.Text).Trim(), @"^(\d+|\d+.?\d+?)$")) 
      { 
       object reference = wordDoc.ActiveWindow.Selection.Range; 
       string refNo = Regex.Match((wordDoc.ActiveWindow.Selection.Text).Trim(), @"^(\d+|\d+.?\d+?)$").Value.ToString(); 
       MessageBox.Show(refNo); 
       object replaceAll = Word.WdReplace.wdReplaceOne; 

       wordDoc.ActiveWindow.Selection.Find.Text = refNo; 
       wordDoc.ActiveWindow.Selection.Find.ClearFormatting(); 
       wordDoc.ActiveWindow.Selection.Find.Replacement = "Here"; 
+0

попробовать добавить '.text property' для проблемной линии, таким образом:' wordDoc.ActiveWindow.Selection.Find.Replacement.Text = "Здесь", ' –

+1

Ох .. это сработало! Благодаря..! –

+0

Привет, снова .. у меня возникли проблемы с заменой refno. он заменяет все вместо надстрочного. даже номера в абзаце. может ли он быть фильтром таким образом, чтобы только верхние индексы были только изменены? –

ответ

0

Чтобы найти текст, который является верхним индексом вам нужно будет добавить дополнительные параметры в .Find object.

//after this line of your code... 
wordDoc.ActiveWindow.Selection.Find.Text = refNo; 

//...add the following two: 
wordDoc.ActiveWindow.Selection.Find.Superscript = true; 
wordDoc.ActiveWindow.Selection.Find.Format = true; 

//and the rest of your code unchanged 
Смежные вопросы