Word Interop применять стиль ко всем матчам - PullRequest
1 голос
/ 14 февраля 2020

Я написал код для поиска цитат в файле слов и пытался сделать все цитаты надстрочными.

Word.Range rngCitations = doc.Content;
        rngCitations.Find.MatchWildcards = true;
        rngCitations.Find.Text = @"(\[[0-9]{1,}[,0-9]*\])";
        if (rngCitations.Find.Execute())
        {
            rngCitations.Font.Superscript = 1;
            rngCitations.Font.Bold = 1;

         }

Но только первое совпадение обновляется до Superscript. Как мне изменить этот код, чтобы применить стиль ко всем совпадениям.

1 Ответ

1 голос
/ 14 февраля 2020

Для l oop вы можете использовать официальный пример: https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-loop-through-found-items-in-documents?view=vs-2019

rng.Find.ClearFormatting(); 
rng.Find.Forward = true; 
rng.Find.Text = "find me"; 

rng.Find.Execute(
    ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing);

while (rng.Find.Found) 
{ 
    intFound++;
    rng.Find.Execute(
        ref missing, ref missing, ref missing, ref missing, ref missing, 
        ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing);
}

В вашем случае измените, если с while

while (rngCitations.Find.Execute())
{
      rngCitations.Font.Superscript = 1;
      rngCitations.Font.Bold = 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...