word宏无法录制替换字体格式

hua tu 0 信誉分
2025-11-12T03:47:05.6466667+00:00

我想要将文档中所有数字的字体替换为Times New Roman,并将此操作录制为宏

使用“查找与替换”功能是可以正常替换成功的

单录制为宏后,执行无效果,或将数字替换为空

用户的图像

Sub 宏4()
'
' 宏4 宏
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^#"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

宏似乎并未成功录制我的操作

Microsoft 365 和 Office | Project | 商业版 | Windows
0 个注释 无注释

1 个答案

排序依据: 最新
  1. Sophie N 18,180 信誉分 Microsoft 外部员工 审查方
    2025-11-12T05:02:24.28+00:00

    注意: 此回复已使用工具翻译;如有任何语法或含义错误,敬请谅解。衷心感谢您的理解。如果我的回答有任何不清楚的地方,请随时留言,我会尽快回复您。

    您好 @hua tu,

    感谢您在 Microsoft Q&A 论坛发布问题,并提供了详细的问题描述和宏代码。这是宏录制器在处理通配符和格式设置时的一个已知限制。

    当您使用特殊字符(例如插入符号 (^#))查找数字时,录制器通常无法正确捕获“查找内容”的值。这会导致宏搜索的内容为空,因此替换操作无效或将数字替换为空格。

    您的代码存在问题

    您使用了 .Text = "[0-9]" 和 .MatchWildcards = True,这意味着宏只会更改数字的字体。如果您的文档中没有数字,则不会发生任何变化。

    如果您想要更改所有文本,此代码将无法工作,因为它仅针对数字。

    请尝试使用这个已修正并测试过的宏。它明确定义了搜索任意数字并将其替换为 Times New Roman 字体。

    Sub ChangeFontWholeDocument() 
    Selection.WholeStory      
    Selection.Font.Name = "Times New Roman" End Sub 
    

    用户的图像

    如果您只想处理数字

    您当前的逻辑对于数字来说是可以的,但请确保:

    • 文档中确实包含数字。
    • 已包含 .MatchWildcards = True(您已经添加了)。
    • ​​已包含 .Format = True(您漏掉了这一行)。

    以下是更正后的版本:

    Sub ChangeFontNumbers()  
      With Selection.Find  
      .ClearFormatting  
      .Text = "[0-9]"  
    .Replacement.ClearFormatting  
      .Replacement.Font.Name = "Times New Roman"  
    .Forward = True  
    .Wrap = wdFindContinue  
    .Format = True  
    .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll 
    End Sub  
    

    用户的图像

    • 更改文档字体 > 文档中的所有文本立即更改为 Times New Roman 字体。
    • 更改数字字体 > 仅数字更改为 Times New Roman 字体。
    • 不会弹出任何窗口;您将直接在文档中看到更改。

     

    更多详情,请参阅 Microsoft 文档:对文本应用格式 | Microsoft Learn

    希望这能解决您的问题。如有任何其他疑问,请随时联系我。


    如果此答案对您有帮助,请点击“接受答案”并点赞。如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收此主题的相关邮件通知,请按照 我们的文档 中的步骤启用邮件通知。

    接受答案01 个答案

    此答案是否有帮助?


你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。