Lisa ha bisogno di un modo per trovare le ultime due parole in tutti i paragrafi di un documento e sostituire lo spazio tra quelle parole con uno spazio unificatore. Si chiede se ciò sia possibile utilizzando Trova e sostituisci.

Il modo più semplice per farlo senza utilizzare una macro è affidarsi alle funzionalità dei caratteri jolly di Trova e sostituisci. La chiave per farlo è ricordare che non hai davvero bisogno di identificare le ultime due parole in ciò che trovi: devi solo identificare l’ultima parola, con il suo spazio precedente. Segui questi passaggi:

  1. Premi CTRL + H. Word visualizza la scheda Sostituisci della finestra di dialogo Trova e sostituisci.

  2. Fare clic sul pulsante Altro, se visibile. (Vedi figura 1.)

  3. Selezionare la casella di controllo Usa caratteri jolly.

  4. Nella casella Trova, inserisci questo: () ([0-9A-Za-z ~ -] \ {1,}) ([. \! \? \:]) (^ 13). Nella casella Sostituisci con, inserisci questo: ^ s \ 2 \ 3 \ 4. Fare clic su Sostituisci tutto.

Come funziona effettivamente potrebbe richiedere solo un po ‘di spiegazione. Il trucco qui è quello che stai cercando, specificato nel passaggio 4. Ogni elemento cercato è racchiuso tra (parentesi), quindi è facile individuarli e fare riferimento ad essi nella casella Sostituisci con (passaggio 5). I quattro elementi nella casella Trova (di nuovo, circondati da parentesi) sono i seguenti:

  1. ()

  2. ([0-9A-Za-z ~ -] \ {1,})

  3. ([. \! \? \:])

  4. (^ 13)

Il primo elemento è un unico spazio. Il secondo è un numero qualsiasi di cifre, lettere o trattini. (È l’ultima parte di questo elemento – \ {1,} – che specifica che può esserci un numero qualsiasi di cifre, lettere o trattini.) Questo è l’elemento che specifica la parola alla fine del paragrafo e include la possibilità che la parola contenga trattini in modo che le parole composte vengano trattate come una singola parola. Il terzo elemento è uno dei segni di punteggiatura mostrati e il quarto elemento è il marcatore di fine paragrafo effettivo.

La specifica Sostituisci con (passaggio 5) sostituisce semplicemente il primo elemento (lo spazio) con uno spazio unificatore, quindi rimette a posto il secondo, il terzo e il quarto elemento.

Va notato che ci sono un paio di scenari in cui questo approccio Trova e sostituisci non funzionerà. Innanzitutto, non funzionerà se il paragrafo contiene spazi finali, tra il segno di punteggiatura e il marcatore di fine paragrafo. È possibile utilizzare Trova e sostituisci per eliminarli in tutto il documento prima di eseguire quanto sopra Trova e sostituisci.

La seconda situazione in cui non funziona è se il paragrafo termina con una punteggiatura composta, come un punto seguito da virgolette o virgolette seguite da due punti. La ricerca con caratteri jolly prevede che ci sia un solo segno di punteggiatura alla fine del paragrafo e deve essere uno dei quattro segni di punteggiatura specificati.

La terza situazione in cui non funzionerà è se c’è una sorta di punteggiatura nell’ultima parola del paragrafo. Ad esempio, se la parola finale è effettivamente un numero come 1.234, l’inclusione della virgola interromperà la corrispondenza. Questo potrebbe essere risolto includendo la virgola nel secondo elemento cercato, ma il numero di volte in cui ciò potrebbe accadere sembrava abbastanza minuscolo da non averlo consentito nei passaggi precedenti.

Se preferisci un approccio basato su macro alla sostituzione, potresti prendere in considerazione l’utilizzo della seguente macro:

Sub LastTwo()

Dim p As Paragraph     Dim J As Integer     Dim K As Integer     Dim sTemp As String

For Each p In ActiveDocument.Paragraphs         J = p.Range.Words.Count         For K = J To 1 Step -1             sTemp = p.Range.Words(K)

If Right(sTemp, 1) = " " Then                 p.Range.Words(K) = RTrim(sTemp) & Chr(160)

K = 1             End If         Next K     Next p End Sub

La macro passa attraverso ogni paragrafo del documento e quindi torna indietro tra le parole nei paragrafi. Cerca la prima parola che contiene uno spazio finale, quindi lo sostituisce con uno spazio unificatore.

C’è una cosa interessante in questa macro: potrebbe non funzionare come previsto su tutti i sistemi. Se, dopo averlo eseguito, non ottieni uno spazio unificatore ma vedi invece una piccola “croce” tra le ultime due parole, allora semplicemente sostituisci Chr (160) nel codice con Chr (202). Sarebbe molto più semplice se Word includesse un’enumerazione definita per uno spazio unificatore, ma non lo fa. Invece, devi fare affidamento sul codice ASCII per uno spazio unificatore, che non sembra essere lo stesso su tutti i sistemi.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13577) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.