2012-03-23 4 views
0

Я использую Microsoft.Office.Interop.Word с C#. Я знаю, что вы можете установить текст полужирным, используя Range.Font.Bold = 1. Моя проблема в том, что у меня длинное предложение, и я должен сделать несколько слов в нем, а не в целом. Если мое предложение: «Хотели бы вы получить ответы на свои вопросы, отправленные вам по электронной почте?», Я хотел бы «иметь ответы», чтобы быть смелым.C# Microsoft.Office.Interop.Word

В этом примере я могу полужирный только одно слово (обернув через весь текстовый документ):

foreach(Microsoft.Office.Interop.Word.Range w in oDoc.Words) 
{ 
    if (w.Text == "Something") 
     w.Font.Bold = 1; 
} 

Но это только одно слово, как я могу сделать смелые два, три или более последовательных слов в предложении.

ответ

3

Не нужно проходить через весь документ. Использование Word.WdReplace.wdReplaceAll, что-то похожее на это:

private void SearchReplace() 
{ 
    Word.Find findObject = Application.Selection.Find; 
    findObject.ClearFormatting(); 
    findObject.Text = "find me"; 
    findObject.Replacement.ClearFormatting(); 
    findObject.Replacement.Text = "Found"; 

    object replaceAll = Word.WdReplace.wdReplaceAll; 
    findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
     ref missing, ref missing, ref missing, ref missing, ref missing, 
     ref replaceAll, ref missing, ref missing, ref missing, ref missing); 
} 

Вы можете прочитать об этом здесь: http://msdn.microsoft.com/en-us/library/f65x8z3d.aspx

Надеется, что это помогает!

Смежные вопросы