Aileen lavora con molti documenti che hanno la data in un formato numerico, come 9/22/12. Deve convertire queste date in un formato diverso, in particolare il 22 settembre 2012. Si chiede se esista un modo semplice per apportare la modifica senza dover ridigitare ogni data.

La risposta dipende, in gran parte, dalla natura della data che stai cambiando. Le date in un documento di Word possono essere testo semplice o un campo. Puoi capire se la data è un campo semplicemente spostando il punto di inserimento da qualche parte all’interno della data. Se si tratta di un campo, l’intera data dovrebbe essere ombreggiata in grigio chiaro una volta che il punto di inserimento si trova all’interno della data.

Se la data è un campo, puoi fare clic con il pulsante destro del mouse sulla data e scegliere Modifica campo dal menu contestuale risultante. È quindi possibile modificare il campo, inclusa la selezione di un formato di data diverso nell’elenco Proprietà campo.

Se la data è un testo normale (non un campo), è necessario cercare una soluzione diversa. È possibile esaminare il documento e ridigitare manualmente tutte le date, ma Aileen ha già scoperto che un tale approccio è noioso. È qui che una macro può tornare utile: per curare la noia facendo programmaticamente ciò che altrimenti faresti a mano.

La seguente macro scorrerà un documento, cercando tutte le date nel formato g / m / aaaa. (Possono essere presenti una o due cifre per il mese o il giorno, ma devono essere quattro cifre per l’anno.) Se viene trovata una data che corrisponde a questo modello, viene convertita nel formato mmmm d, yyyy.

Sub GetDateAndReplace()

Dim FoundOne As Boolean

Selection.HomeKey Unit:=wdStory, Extend:=wdMove     FoundOne = True ' loop at least once

Do While FoundOne ' loop until no date is found         With Selection.Find             .ClearFormatting             .Replacement.ClearFormatting             .Text = "([0-9]{1,2})[/]([0-9]{1,2})[/]([0-9]{4})"

.Format = True             .Forward = True             .MatchWildcards = True         End With

Selection.Find.Execute Replace:=wdReplaceNone

' check the find to be sure it's a date         If IsDate(Selection.Text) Then             Selection.Text = Format(Selection.Text, "mmmm d, yyyy")

Selection.Collapse wdCollapseEnd         Else ' not a date - end loop             FoundOne = False         End If     Loop End Sub

_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 (3400) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia a nastro di Word (Word 2007 e più tardi) qui: