如何宏Word字体

时间:2018-11-28 19:34:51

标签: vba fonts ms-word

为什么此VBA代码不起作用?有了这个普通的文字。

不幸的是,我的通配符搜索也将找到这些实例。有没有一种方法可以在Word宏中查找具有不同格式的文本?

Sub test()
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Text = "~~~" & "[a-zA-Z]" & "~~~"
        .Replacement.ClearFormatting
        .Replacement.Font.Name = "Arial"
        .Replacement.Text = "^&"
        .Format = True
        .Forward = True
        .Wrap = wdFindStop
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

查找替换存在一些问题。

  1. 您正在尝试进行通配符搜索,而未设置 .MatchWildcards为True。我们可以这么说是因为您使用的是通配符范围[a-xA-Z]。

更改

.MatchWildcards = False

.MatchWildcards = True

并且您的替换功能应该起作用。

[]中的字符范围必须按升序字符值顺序排列,因此应为[A-Za-z]。另外,为了给您更大的灵活性,您可以在查找模式的不同部分周围放置方括号,然后使用\ n引用这些(),其中n是1-9的序数形式。

因此,查找文本最好用“(~~~)([A-Za-z])(~~~)”表示,替换文本用“ \ 1 \ 2 \ 3”表示

  1. 您已指定要搜索格式,但未提供任何特定条件来查找文本。这意味着任何与您的查找模式匹配的文本都将更改为Arial字体。

如果您只想更改普通样式的文本,则必须指定样式

例如添加

.style = "Normal"

尝试上面建议的更改,让我们知道您的工作方式。