2015-02-10 256 views
0

我很难弄清楚如何使用特定字体替换Word文档中的文本。我可以找到并替换文本,但它不使用我指定的字体。使用VB.NET替换具有特定字体的Word文档文本

Dim objWord As Word.Application 
Dim objDoc As Word.Document 

objWord = New Word.Application 
objWord.Visible = True 
objDoc = objWord.Documents.Open("C:\Users\John.USEI\Desktop\ME551i2.doc") 
objWord.Visible = True 

'objWord.ActiveWindow.Selection.Font.Name = "WASP LOGMARS MC" 
'objWord.ActiveWindow.Selection.Font.Size = "20" 

objDoc.Content.Find.Execute(FindText:="MAM", ReplaceWith:="L412F05050", Replace:=Word.WdReplace.wdReplaceAll) 
While objDoc.Content.Find.Execute(FindText:=" ", Wrap:=Word.WdFindWrap.wdFindContinue) 
    objWord.ActiveWindow.Selection.Font.Name = "WASP LOGMARS MC" 
    objWord.ActiveWindow.Selection.Font.Size = "20" 
    objDoc.Content.Find.Execute(FindText:=" ", ReplaceWith:=" ", Replace:=Word.WdReplace.wdReplaceAll, Wrap:=Word.WdFindWrap.wdFindContinue) 
End While 

我试过在While循环(当前注释掉)之前设置字体,并在循环内试过。 (当前代码)

是否可以指定要替换的字体?

回答

0

您可以设置替换字体在查找对象:

objWord.Selection.Find.ClearFormatting() 
objWord.Selection.Find.Replacement.ClearFormatting() 
objWord.Selection.Find.Replacement.Font.Color = Word.WdColor.wdColorRed 
objWord.Selection.Find.Replacement.Font.Size = 25 
With objWord.Selection.Find 
    .Text = "John" 
    .Replacement.Text = "J2" 
    .Forward = True 
    .Format = True 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
objWord.Selection.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll) 
相关问题