Domanda

Voglio trovare tutti gli eventi della stringa "No". + 1-2 numeri interi tra 1 e 9. quindi per eliminare il "no". e avvolgi l'intero/s tra la parantesi: "(4)" o "(67)". Ad esempio "n. 34" dovrebbe diventare "(34)".

Mi sembra di avere più problemi (Word 2010):

  1. Il codice sostituisce solo un numero intero. Come faccio a trovare uno o due numeri interi?
  2. Come faccio a rendere .replacement.text contenere i numeri ma non la parola "no". (Ho appena messo XXXXX così lontano).
  3. Il mio codice aggiunge parantesi, ma all'inizio e alla fine del documento attivo. Come faccio a farlo avvolgere i numeri invece?

    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 
    
È stato utile?

Soluzione

Prova con la seguente soluzione:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top