Я хотел бы форматировать (например, выделять) специальные слова в документе Word через VBA. В общем, это работает хорошо, но в этом случае мне нужно найти что-то вроде <*> (слова, заключенные в скобки "<" и ">", где * означает подстановочный знак, но скобки - нет. Я пытался "убрать" скобки через обратную косую черту, но это не работает. Я получаю сообщение об ошибке 5623: текст замены содержит номер группы, выходящий за пределы допустимого диапазона.

wrdDocResults.Select
With Selection.Find
    .Text = "\<*\>"
    .Replacement.Font.Color = wdColorBlue 
    .Forward = True           
    .Wrap = wdFindStop          
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll   

Спасибо за вашу помощь!

1 ответ1

1

попробуй это

Sub test()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "\<*\>"
    .Replacement.Font.Color = wdColorBlue
    .Forward = True
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .