更改MS Word宏中所选文本的字体

时间:2018-11-24 02:06:53

标签: vba ms-word word-vba

我必须为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

1 个答案:

答案 0 :(得分:0)

经过一些额外的挖掘和晚安睡眠后,这里是答案:

  • .Format必须为true才能真正进行更改
  • 字体名称必须正确。在我的情况下,我尝试使用 Free 3 of 9 Extended (已导入到我的计算机中),而不是 Regular (未导入并因此未找到)就像上面的代码一样。

菜鸟错误。

希望这可以帮助其他人