简体   繁体   English

如何在 MS Word 中使用 VBA 查找和替换 Calibri 字体

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

I am going to find the Calibri font in my document and replace with same content and same font (Calibri) with XML tag before and after <Cal></Cal> .我将在我的文档中找到Calibri字体,并在<Cal></Cal>之前和之后用 XML 标记替换相同的内容和相同的字体 (Calibri)。 I manually find and replacing each time.我每次都手动查找和替换。 If i recorded this as a macro it not working.如果我将此记录为宏,则它不起作用。

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

If i modify (or add) the line Selection.Find.Font.Name = "Calibri" to the macro then also not working如果我修改(或添加)行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

My Input DOC file in Calibri font我的Calibri字体输入 DOC 文件

My Input DOC file我的输入 DOC 文件

My Output DOC file need to replace我的输出 DOC 文件需要替换

My required output我需要的输出

Try:尝试:

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