Pregunta

Quiero encontrar todas las ocurrencias de la cadena "no". + 1-2 enteros entre 1 y 9. Luego, para eliminar el "no". y envuelva el entero/s entre la parántesis: "(4)" o "(67)". Por ejemplo, "no. 34" debería convertirse "(34)".

Parece que tengo múltiples problemas (Word 2010):

  1. El código solo sustituye a un número entero. ¿Cómo hago que encuentre tanto uno o dos enteros?
  2. ¿Cómo hago que el replacio.text contenga los números pero no la palabra "no"? (Acabo de poner xxxxx hasta ahora).
  3. Mi código agrega parántesis, pero al principio y al final del documento activo. ¿Cómo hago que envuelva los números en su lugar?

    With Selection.Find  
        .Text = "n[or]. [1-9]"  
        .Replacement.Text = "XXXXX"  
        .Forward = True  
        .Wrap = wdFindContinue  
        .Format = False  
        .MatchCase = False  
        .MatchWholeWord = False  
        .MatchWildcards = True  
        .MatchSoundsLike = False
        .MatchAllWordForms = False  
    End With  
    Selection.InsertBefore ("(")  
    Selection.InsertAfter (")")  
    Selection.Find.Execute Replace:=wdReplaceAll 
    
¿Fue útil?

Solución

Intente con la siguiente solución:

With Selection.Find
    .Text = "(No.)( )([1-9]{1;2})"
    .Replacement.Text = "(\3)"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top