Aileen trabaja con muchos documentos que tienen la fecha en un formato numérico, como el 22/9/12. Necesita convertir estas fechas a un formato diferente, específicamente el 22 de septiembre de 2012. Se pregunta si existe una manera fácil de realizar el cambio sin necesidad de volver a escribir cada fecha.

La respuesta depende, en gran parte, de la naturaleza de la fecha que está cambiando. Las fechas en un documento de Word pueden ser texto simple o un campo. Puede saber si la fecha es un campo simplemente moviendo el punto de inserción en algún lugar dentro de la fecha. Si es un campo, entonces la fecha completa debe estar sombreada en gris claro una vez que el punto de inserción esté dentro de la fecha.

Si la fecha es un campo, puede hacer clic con el botón derecho en la fecha y elegir Editar campo en el menú contextual resultante. A continuación, puede modificar el campo, incluida la selección de un formato de fecha diferente en la lista Propiedades del campo.

Si la fecha es texto normal (no un campo), entonces debe buscar una solución diferente. Es posible revisar el documento y volver a escribir manualmente todas las fechas, pero Aileen ya descubrió que ese enfoque es tedioso. Aquí es donde una macro puede ser útil: para curar el tedio haciendo programáticamente lo que de otro modo haría a mano.

La siguiente macro recorrerá un documento, buscando todas las fechas en el formato m / d / aaaa. (Puede haber uno o dos dígitos para el mes o el día, pero debe tener cuatro dígitos para el año). Si se encuentra una fecha que coincida con este patrón, se convierte al formato mmmm d, aaaa.

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: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (12197) se aplica a Microsoft Word 2007 y 2010. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Word aquí:

link: / word-Changing_the_Format_of_Existing_Dates [Cambio del formato de las fechas existentes].