2016-10-07 1 views
0

Ich versuche Text zwischen Klammern in einem Worddokument hervorzuheben, aber mein Code hebt nur die Klammern hervor. Hier ist mein Code:Programmgesteuertes Hervorheben von Wörtern zwischen Klammern im Word-Dokument

private void button5_Click(object sender, EventArgs e) 
{ 
    object textf = "("; 
    object texs = ")"; 
    object color = Color.Cyan; 
    object oMissing = System.Reflection.Missing.Value; 
    acWord.Application.Selection.Find.ClearFormatting(); 

    acWord.Application.Selection.Find.HitHighlight(ref textf, ref color, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 

} 
+0

Sie müssen Bereiche auswählen, anstatt Zeichen zu finden. Suchen Sie nach den Auswahl- und Bereichsobjekten in Wort vba ... https: //msdn.microsoft.com/en-us/library/office/ff845882.aspx – Charleh

Antwort

1

Es sollte so sein.

private void btnFind_Click(object sender, EventArgs e) 
{ 
    object fileName = "xxxxx"; //The filepath goes here 
    string textToFind = "xxxxx"; //The text to find goes here 
    Word.Application word = new Word.Application(); 
    Word.Document doc = new Word.Document(); 
    object missing = System.Type.Missing; 
    try 
    { 
     doc = word.Documents.Open(ref fileName, 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); 
     doc.Activate(); 
     foreach (Word.Range docRange in doc.Words) 
     { 
      if(docRange.Text.Trim().Equals(textToFind, 
       StringComparison.CurrentCultureIgnoreCase)) 
      { 
       docRange.HighlightColorIndex = 
        Microsoft.Office.Interop.Word.WdColorIndex.wdDarkYellow; 
       docRange.Font.ColorIndex = 
        Microsoft.Office.Interop.Word.WdColorIndex.wdWhite; 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Error : " + ex.Message); 
    } 
} 

Sie können dies auch versuchen.

using System.Drawing; 
using Spire.Doc; 
using Spire.Doc.Documents; 

namespace WordImage 
{ 
    class ImageinWord 
    { 
        static void Main(string[] args) 
        { 
            //Create Document 
            Document document = new Document(); 
            document.LoadFromFile(@"E:\Work\Documents\WordDocuments\References.docx"); 

            TextSelection[] text = document.FindAllString("forming", false, true); 
            foreach (TextSelection seletion in text) 
            { 
                seletion.GetAsOneRange().CharacterFormat.HighlightColor = Color.Yellow; 
            } 

            document.SaveToFile("FindHighlight.docx", FileFormat.Docx); 
            System.Diagnostics.Process.Start("FindHighlight.docx"); 
        } 
    } 
} 
+0

Danke, dass es funktioniert hat –

Verwandte Themen