簡體   English   中英

如何在 MS Word 中使用 VBA 查找和替換 Calibri 字體

[英]How to find and replace the Calibri font using VBA in MS Word

我將在我的文檔中找到Calibri字體,並在<Cal></Cal>之前和之后用 XML 標記替換相同的內容和相同的字體 (Calibri)。 我每次都手動查找和替換。 如果我將此記錄為宏,則它不起作用。

Sub Caliberi_Font()
'
' Caliberi_Font Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    
    With Selection.Find
        .Text = ""
        .Replacement.Text = "<cal>^&</cal>"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

如果我修改(或添加)行Selection.Find.Font.Name = "Calibri"到宏,那么也不起作用

Sub Caliberi_Font()

'
' Caliberi_Font Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Font.Name = "Calibri"
    
    With Selection.Find
        .Text = ""
        .Replacement.Text = "<cal>^&</cal>"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

我的Calibri字體輸入 DOC 文件

我的輸入 DOC 文件

我的輸出 DOC 文件需要替換

我需要的輸出

嘗試:

Sub Calibri_Font()
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .Font.Name = "Calibri"
  .Text = ""
  .Replacement.Text = "<cal>^&</cal>"
  .Forward = True
  .Format = True
  .Wrap = wdFindContinue
  .Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM