Word / VBA Find..Replace com curingas e escape /

0

Gostaria de formatar (por exemplo, destacar) palavras especiais em um documento do Word via VBA. Em geral, isso funciona bem, mas neste caso eu preciso encontrar algo como < * > (palavras entre colchetes "<" e ">", onde * é um caractere curinga, mas os colchetes não são. Eu tentei "escapar" os colchetes por meio de barra invertida, mas isso não funciona. Eu recebo Run -time error 5623: O texto de substituição contém um número de grupo que está fora do intervalo.

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   

Obrigado pela sua ajuda!

    
por Martin 23.06.2013 / 22:48

1 resposta

1

tente fazer isso

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
    
por 22.07.2013 / 19:19