2015-10-20 59 views
0

我用下面的函數來查找和替換文本:字互操作替換文本

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; 
     } 
    } 

它工作正常,但我不知道是否有任何方式與「B」替換文本「A」在其他風格格式化?我的意思是:將「A」替換爲「B」FontColor =「Red」
換句話說,我想知道是否可以更改文字「A」的顏色或用「B」替換爲其他顏色。

回答

0

是的,您可以使用Word的查找/替換來更改格式以及文本。確切得到所需語法的最佳方法是在Word宏中記錄這些操作,然後將所需的屬性放入C#代碼中。

Ctrl + H將彈出查找/替換對話框。點擊「更多」按鈕以顯示高級選項。將光標放在「替換」框中,單擊格式按鈕以訪問格式化命令,字體顏色將位於「字體」條目(對話框)中。

當您查看記錄的VBA代碼時,請查找列出「replace」屬性的Find.Replacement部分。

在您的C#代碼中,聲明一個對象以進行查找並對其進行實例化。例如: Word.Find wdFind = Selection.Find;

利用此功能特性:wdFind.Replacement.Font.Color

和對象上執行查找:wdFind.Execute(....