C# Word互操作替换文本

C# Word互操作替换文本,c#,.net,ms-word,office-interop,com-interop,C#,.net,Ms Word,Office Interop,Com Interop,我使用以下函数查找和替换文本: Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true }; Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(fileName, ReadOnly: false, Visible: true);

我使用以下函数查找和替换文本:

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };

Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(fileName, ReadOnly: false, Visible: true);
            aDoc.Activate();
FindAndReplace(wordApp, "A", "B");

private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText)
    {
        try
        {
            //options
            object matchCase = false;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundsLike = false;
            object matchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;
            //execute find and replace
            doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord,
                ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace,
                ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl);
        }
        catch (Exception e)
        {
            throw e;
        }
    }
它工作得很好,但我想知道是否有任何方法可以将文本“A”替换为以其他样式格式化的“B”?我的意思是,例如:将“A”FontColor=“Black”替换为“B”FontColor=“Red”。

换句话说,我想知道是否可以更改文本“A”的颜色,或者用另一种颜色的“B”替换它。

是的,您可以使用Word的“查找/替换”来更改格式以及文本。准确获取所需语法的最佳方法是将操作记录在Word宏中,然后将所需的属性输入到C#代码中

Ctrl+H将弹出“查找/替换”对话框。单击“更多”按钮以显示高级选项。光标位于“替换”框中时,单击“格式”按钮访问格式化命令,字体颜色将显示在“字体”条目(对话框)中

当您查看录制的VBA代码时,请查找“查找.替换”部分,其中将列出“替换”的属性

在C#代码中,为Find声明一个对象并实例化它。例如: Word.Find wdFind=Selection.Find

将其与以下属性一起使用:wdFind.Replacement.Font.Color

并在对象上执行查找:wdFind.execute(