首页 > 解决方案 > 更改 MS Word 宏中选定文本的字体

问题描述

我必须为 MS Word 的现有宏添加一些功能。这个特定的宏在现有的 MS Word 文档中查找特定文本“#code_bar#”并将其替换为不同的文本,即3541589479

现在,一旦找到并替换了此文本(宏已经正确执行),就意味着将字体更改为“Free 3 of 9 Extended”,该字体已导入 Word。

这是代码,它工作正常,除了我尝试更改字体和大小的部分,这实际上没有发生。有人可以帮忙吗?谢谢。

Public Function sustituirCodigoBarras(codigo_barras)

Dim codigoDeBarras As String
Set codigoBarras = ActiveDocument.Content

'#barras_pedido# codigo de barras del pedido

    codigoDeBarras = "#code_bar#"
    With obj_Word.ActiveWindow.Selection.Find
        .Text = codigoDeBarras
        .Replacement.Text = "*" & codigo_barras & "*"
        .Replacement.Font.Name = "Free 3 of 9 Regular"
        .Replacement.Font.Size = 34
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue

    End With

End Function

标签: vbams-word

解决方案


经过一些额外的挖掘和睡个好觉后,答案是:

  • .Format 需要 = true 才能使这些更改真正发生
  • 字体名称必须正确。在我的情况下,我试图使用Free 3 of 9 Extended(已导入我的计算机)而不是常规(未导入,因此未找到),如上面的代码所示。

菜鸟失误。

希望这可以帮助别人


推荐阅读