wdtitleword - 使用vba应用于多个单词

时间:2017-09-07 22:23:50

标签: vba ms-word

在Word中,在文档的用户按Ctrl键选择了一组后,很容易使用vba将高亮显示应用于多个字符串,单词,句子等。 但是,当我按Ctrl键选择几个单词并运行以下语句时,只会更改我选择的最后一个单词。 有没有办法将wdtitleword应用于多个选定的单词? 感谢。

    $fields = array(
        'type' => 'A',
        'name' => $subdomain.rand(1, 2000),
        'content' => Env::getCFIP(),
        'proxied' => true,
        'ttl' => 1
    );

1 个答案:

答案 0 :(得分:1)

请试试这个:

Sub changeNonContigCase()

    ' Find the non-contig selection
    If Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic Then
        Selection.Font.Shading.BackgroundPatternColor = whtcolor
    End If

    ' Find and process each range with .Font.Shading.BackgroundPatternColor = WhtColor
    ActiveDocument.Range.Select
    Selection.Collapse wdCollapseStart

    With Selection.Find
        .Font.Shading.BackgroundPatternColor = whtcolor
        .Forward = True
        .Wrap = wdFindContinue

        Do While .Execute
            ' Do what you need
            Selection.Range.Case = wdTitleWord

            ' Reset shading as you go
            Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic

            ' Setup to find the next selection
            Selection.Collapse wdCollapseEnd
        Loop
    End With

End Sub

这是有效的,但是是间接的。我不认为有更直接的方法来实现这一目标。您可以进行修改以避免重置需要保留的现有格式。到目前为止,我甚至不知道可以在MS Word中选择不连续的范围,可惜在VBA中使用起来并不容易。