Haz todo lo posible por interpretar el código correctamente antes de aplicarlo a tu proyecto si ttienes algo que aportar puedes decirlo en los comentarios.
Solución:
Algunos tipos de referencias cruzadas se formatean automáticamente con el estilo de “referencia intensa”, pero la mayoría tienen el formato de texto “normal”.
Para aplicar el estilo de “referencia intensa” al texto de la referencia cruzada:
- seleccionar el texto
- elija la pestaña “Inicio” en la cinta
- usando los botones arriba-abajo o el botón desplegable en el grupo “Estilos” de la cinta, elija el estilo de “referencia intensa” (u otro estilo si lo prefiere)
Para cambiar la apariencia de todo el texto de un estilo determinado:
- elija la pestaña “Inicio” en la cinta
- usando el botón desplegable en el grupo “Estilos” de la cinta, elija “Aplicar estilos …”
- en el cuadro de diálogo “Aplicar estilos” en “Nombre de estilo”, elija el nombre del estilo que desea cambiar (por ejemplo, “referencia intensa”)
- Haga clic en el botón “Modificar …”
- Cambie el formato a su gusto y haga clic en “Aceptar”
Para aplicar un estilo a todas las referencias cruzadas a la vez:
- prensa Alt+F9 para mostrar códigos de campo
- Seleccione la pestaña “Inicio” en la cinta
- Haga clic en “Reemplazar” en el grupo “Edición”.
- En el campo “Buscar qué”, escriba
^19 REF
- (Eso es intercalado-uno-nueve-espacio-REF)
- Haga clic en el campo “Reemplazar por”, pero no escriba nada.
- Haga clic en el botón “Más”
- La sección inferior del cuadro de diálogo debe titularse “Reemplazar” (con una regla horizontal después).
- Haga clic en el botón “Formato” y seleccione “Estilo …”
- Elija un estilo (por ejemplo, “Referencia intensa”) y haga clic en Aceptar
- Ahora debería mostrar el estilo que seleccionó en el campo “Reemplazar con”
- Haga clic en “Reemplazar todo” si se siente valiente o use “Buscar siguiente” y “Reemplazar” para recorrer y reemplazar u omitir el estilo de cada código de campo de referencia individualmente.
- prensa Alt+F9 para ocultar códigos de campo
Consulte esta página para obtener más información sobre códigos especiales en Buscar y reemplazar.
Aquí hay un macro eso agregará el interruptor * mergeformat
a cada uno de los campos. Este interruptor es necesario para evitar que se pierda el formato si realiza una actualización de campo. Puede asignar el macro a una pulsación de tecla y recorrerá los campos de uno en uno cada vez que presione la tecla. También puede editar el macro para recorrer todo el documento para automatizar el proceso.
Sub mf()
'
' mf Macro
' Find cross references and add * mergeformat
'
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^19 REF"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="* mergeformat "
Selection.Find.Execute
End Sub
- prensa Alt+F9 para mostrar códigos de campo
-
Utilice lo siguiente macro para agregar CHARFORMAT a todas las referencias cruzadas. Esta macro agrega el string al campo solo si aún no está allí.
Sub SetCHARFORMAT() ' ' Set CHARFORMAT switch to all REF fields. Replace MERGEFORMAT. ' ' Dim oField As Field Dim oRng As Range For Each oField In ActiveDocument.Fields 'For Each oField In Selection.Fields If InStr(1, oField.Code, "REF ") = 2 Then If InStr(1, oField.Code, "MERGEFORMAT") <> 0 Then oField.Code.Text = Replace(oField.Code.Text, "MERGEFORMAT", "CHARFORMAT") End If If InStr(1, oField.Code, "CHARFORMAT") = 0 Then oField.Code.Text = oField.Code.Text + "* CHARFORMAT " End If End If Next oField End Sub
-
Utilizar esta macro para formatear todas las referencias cruzadas con el estilo “Referencia sutil” (asegúrese de tener ese estilo y de que se muestren los códigos de campo):
Sub SetCrossRefStyle() ' ' Macro to set styole of all cross references to "Subtle Reference" ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles( _ "Subtle Reference") With Selection.Find .Text = "^19 REF" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
-
prensa Alt+F9 para ocultar códigos de campo
editando el macro subido por el cyborg, podemos automatizar fácilmente mostrar y ocultar los códigos de campo. para que cada vez que deseemos actualizar no tengamos que usar códigos de campo de alternancia. Usé el siguiente código para agregar alternar el código de campo.
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
El completo macro es como sigue:
Sub SetCrossRefStyle()
'
' Macro to set styole of all cross references to "Subtle Reference"
'
'
ActiveDocument.ActiveWindow.View.ShowFieldCodes = True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles( _
"Subtle Reference")
With Selection.Find
.Text = "^19 REF"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False
End Sub
Esta es la primera vez que uso macros para acelerar mi trabajo en Word. gracias cyborg por tanta ayuda macro.