MS Word - encontre apenas números com 3 dígitos

MS Word - encontre apenas números com 3 dígitos

É necessário localizar e excluir todos os números com apenas 3 dígitos - e ignorar números de 1-2 e 4+ dígitos (se for de alguma ajuda, o terceiro dígito é seguido por texto sem espaço entre, por exemplo, "457text"). Agradeço MUITO qualquer ajuda!!!

Responder1

Você poderia fazer isso no Word (ou seja, não em scripts) com um curinga para localizar e substituir. Se 3 dígitos forem sempre seguidos de letra:

insira a descrição da imagem aqui

ou se você quiser permitir qualquer caractere (por exemplo, pontuação), você pode excluir o quarto caractere como dígito com uma variação:

insira a descrição da imagem aqui

Em ambos os exemplos, na seção Localizar, os colchetes indicam as partes - queremos encontrar os 3 dígitos no início de uma "palavra" como a primeira parte e encontrar apenas aqueles onde o próximo caractere é uma letra, ou seja, o segundo parte que queremos manter.

Na substituição por \2 significa que "substituímos" nosso texto encontrado (por exemplo, 123A) apenas pela parte "A" (resto do texto seguinte inalterado, pois não faz parte do resultado "encontrar").

O < significa o início da palavra, ou seja, queremos que os 3 dígitos estejam no início da palavra, mas não queremos pegar 3 dígitos no meio de uma sequência mais longa (por exemplo, ignore 12345 por não encontrar 345 dentro dela).

Os colchetes são um intervalo de caracteres, então [0-9] significa qualquer dígito de 0 a 9 e {3} significa uma sequência de 3 desses caracteres. O [A-Za-z] significa qualquer letra minúscula ou maiúscula. A opção alternativa com [!0-9] encontra tudo, exceto (! não é) os dígitos de 0 a 9.

Responder2

Sim, você pode fazer isso com um script VBA. Para abrir o Editor VBA pressione ALT + F11 ao mesmo tempo. Insira o seguinte código no Editor VBA

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("[0-9][0-9][0-9]")
    ActiveDocument.Range = _ 
    RegEx.Replace(ActiveDocument.Range, InputBox(""))        

End Sub

informação relacionada