
¿Alguna vez has querido borrar los retornos en Word, pero se te borraban no solo los seleccionados, sino todos los del documento abierto?
Pues que no cunda el pánico, ¡porque hay solución!
Planteamiento del problema
Es un caso que se da mucho cuando tienes un documento de Word que procede de un PDF. Es decir, cuando tienes que traducir un documento PDF, que conviertes a un formato DOCX, ya sea copiando y pegando o empleando un OCR, es muy posible que tengas un montón de retornos de párrafo innecesarios:

☛ Como ves en la anterior imagen, Word indica cada símbolo de párrafo con un calderón (¶) y cada espacio con un punto medio (·). Antes de ponerte a borrar retornos de párrafo, te recomiendo tener a la vista estos caracteres; para ello, deberás marcar el botón de Mostrar todo en la pestaña de Inicio de Word:

No sería un gran problema, pero de todos es sabido que estos retornos sientan como un tiro a las herramientas de traducción asistida que empleamos, como Trados Studio o memoQ:

Como ves, cada línea del documento DOCX es un segmento en Trados Studio, lo que puede resultar muy molesto para el traductor.
Por ello, para evitar problemas, antes de abrir el documento DOCX con tu herramienta de traducción, conviene procesar un poco el documento y borrar todos los retornos innecesarios dentro de Word.
Hay varias formas de borrar estos retornos innecesarios en Word:
1. Borrar retornos uno a uno
La primera forma implica ir borrando manualmente cada retorno innecesario y sustituirlos por un espacio:

Es una opción válida, siempre y cuando el documento no sea muy grande. Si tienes que repetir este borrado demasiadas veces, primero tardarás mucho (¿lo vas a facturar al cliente?) y, segundo, con el cansancio y el aburrimiento aumentan las posibilidades de que te equivoques (¿te puedes permitir estos fallos y no dedicarte a tareas más productivas?).
2. Borrar retornos en Word con una macro
Si el documento es grande, te recomiendo borrar siempre los retornos de esta manera, aunque cuando descubras el potencial de las macros de VBA, lo utilizarás incluso para reemplazos menos numerosos.
Aquí se trata de programar una pequeña macro de VBA para borrar automáticamente los retornos en Word, tal que así:

Chulo, ¿verdad?
Lo primero que se te puede ocurrir es grabar una macro con el Grabador de macros para borrar los retornos en Word. Es decir, en Word te pones en modo de grabación de macro, seleccionas el texto, reemplazas un retorno por un espacio, y paras la grabación. Pero esta vía tiene un problema: te borra TODOS los retornos, ¡sin dejar ningunos vivo!
Y esto no es lo que queremos, aquí ¿verdad? Queremos borrar solo los retornos seleccionados.
Así que la alternativa es otra macro de Word, que te puedes descargar. Repito: BORRAR SOLO LOS RETORNOS SELECCIONADOS.
La macro es muy breve:
Sub QuitaSaltosDePárrafo()
' Macro de Word para borrar todos los retornos seleccionados
' https://www.gonduana.com/como-borrar-los-retornos-en-word
Dim oRng As Word.Range
Dim oRangoLímite As Word.Range
Set oRango = Selection.Range
Set oRangoLímite = oRango.Duplicate
With oRango.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
While .Execute
If oRango.InRange(oRangoLímite) Then
oRango.Text = " "
oRango.Collapse wdCollapseEnd
Else
Exit Sub
End If
Wend
End With
End Sub
Lo que hace la macro es reemplazar cada retorno seleccionado por un espacio. Es decir, automatiza el borrado manual que vimos antes.
Es cierto que en los párrafos breves, de dos líneas, la macro no tiene una ventaja clara respecto al borrado manual. ¡Pero te aseguro que es una delicia en párrafos grandes!
☛ Espero que te sea tan útil como a mí, ya que la empleo casi cada día.
☛ No es una macro mía, sino que la encontré en internet. Las gracias y los honores, para Greg Maxey. Si quieres ver otras macros avanzadas de Greg, las tienes en su web. Thanks very much, Greg, if you ever read this!
Mejoras en la macro
Te voy a dar un par de ideas para que mejores la macro y dejo la tarea a tu buen hacer.
1.ª mejora: Borrar guiones automáticos
El problema que busca una solución mejorada de la macro es el siguiente: Hay documentos de Word que tienen guiones justo antes del retorno que se deberían borrar. El motivo de estos guiones innecesarios es que eran guiones automáticos en el documento original (formato InDesign, por ejemplo), que al copiarlos del PDF al DOCX se copian no como automáticos, sino como manuales.
La idea es que puedes ampliar la macro VBA para que reemplace un guion seguido por un retorno por un espacio, es decir:
- ¶ = [espacio]
2.ª mejora: Operativa
Otra mejora, no ya de la macro en sí, radica en agilizar su ejecución.
Una posibilidad es habilitar un botón en la cinta o en la barra de acceso rápido de Word, para tener la macro siempre a mano. Yo la tengo en este botón de la barra de acceso rápido:

Otra posibilidad, aún más rápida, es crear un método abreviado de teclado, como F12 , para ejecutar la macro rápidamente. Después de seleccionar las líneas con el ratón, con la otra mano pulsas F12 .
Por si te lo estás preguntando: No, no uso la tecla F12 del teclado para copiar en el Explorador de Archivos. Más bien uso uno de los 12 botones de este ratón:

☛ Como ves, un botón de este ratón me permite borrar retornos de párrafo. Así que selecciono y borro con el ratón, todo con una sola mano.
Más información sobre este ratón, en este artículo:
Un ratón de jugar, el UtechSmart Venus, ¡para trabajar!
Elijas la operativa que elijas, que te sientas cómodo y que sea para ir más rápido.
Conclusiones
Cómo borrar los retornos innecesarios de un documento de Word:
- Descargar la macro VBA de este artículo.
- Insertar la macro VBA en Word (p. e., en la plantilla Normal).
- Seleccionar en Word el texto que contiene los retornos que quieres borrar.
- Ejecutar la macro.
- Repetir los pasos 2, 3 y 4 hasta borrar todos los retornos innecesarios.







¡Mil gracias! Esta ni se me había cruzado por la mente.
Era complicada, sí. ¡Qué bien que hay gente que comparte sus macros!
Un abrazo,
… Jesús Prieto …
Tengo una de limpieza "profunda de originales que me costó sudor y ... sudor, lágrimas no..
Empecé con una consulta que te hice ya hace unos años acerca de corrección de espacios. Probé algunas de las que compartiste en otras entradas, pero tuve que retocarlas..
Ahora les agarré bastante la mano.
Te copio esta, que Corrige Nº/nº a N.º/n.º y todos los ordinales.
También cambia la ó pos o entre cifras... Ahí tuve una ayudita, creo que de Cálamo&Cran.
Le agregué ventana emergente para evitar confusiones... Si encontrás algún fallo, avisame que reviso. ¡Gran abrazo!
Sub NumeroOrdinales()
'
' NumeroOrdinales Macro
'
'
MsgBox "N.º/ Ordinales .º, .ª: OJO, cambia grado por superíndice o"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([Nn])([ªº])[ ]@."
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([Nn])[ ]@.[ ]@([ªº])"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<n°"
.Replacement.Text = "n.°"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<N°"
.Replacement.Text = "N.°"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<n °"
.Replacement.Text = "n.°"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<N °"
.Replacement.Text = "N.°"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(n.°)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(N.°)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<n.º)([0-9])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<N.°)([0-9])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<n.°) @([0-9])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<N.°) @([0-9])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<nº"
.Replacement.Text = "n.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<Nº"
.Replacement.Text = "N.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<n º"
.Replacement.Text = "n.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "<N º"
.Replacement.Text = "N.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(n.º)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(N.º)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<n.º)([0-9])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<N.º)([0-9])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<n.º) @([0-9])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<N.º) @([0-9])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([Nn0-9])(°)"
.Replacement.Text = "\1.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@)(°)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@)ª"
.Replacement.Text = "\1.ª"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@) @(ª)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@.ª)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.ª)([a-zA-Z])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.ª) @([a-zA-Z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.ª)([a-zA-Z ])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.°) @([a-zA-Z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@)(ª)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@) @(ª)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@.ª)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.ª)([a-zA-Z ])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.ª) @([a-zA-z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@) @(°)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@.°) @(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.°) @([a-zA-Z])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@)º"
.Replacement.Text = "\1.º"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@) (º)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@.º)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.º)([a-zA-Z])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.º) @([a-zA-Z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.º)([a-zA-Z ])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.°) @([a-zA-Z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@)(º)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@) (º)"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@.º)(.)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.º)([a-zA-Z ])"
.Replacement.Text = "\1 \2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "(<[0-9]@.º) @([a-zA-z ])"
.Replacement.Text = "\1^s\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@)[ ]@([ªº°])."
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@)[ ]@([ªº°]) @."
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]@)[ .]@([ªº°])"
.Replacement.Text = "\1.\2"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9])( ó )([0-9])"
.Replacement.Text = "\1 o \3"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9])( [oó] )([8])"
.Replacement.Text = "\1 u \3"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([0-9]{1;4}) ,"
.Replacement.Text = "\1,"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = ", ([0-9]{2})"
.Replacement.Text = ",\1"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Hola, Marisa E.:
Supongo que esto es una versión personalizada de lo que aparece en este enlace:
https://www.calamoycran.com/blog/el-quitamanchas-del-dr-macro
Te contacto por privado.
Un abrazo,
… Jesús Prieto …
Hola, Jesús.
Me encanta tu blog. Eres un referente en esto de la búsqueda y corrección de cadenas de texto. Enhorabuena.
Dándole una vuelta a esto de los retornos incorrectos, he encontrado una sencilla manera con el uso de caracteres comodin en la función de Reemplazar: Buscar ">^13" y Reemplazar por espacio. Veo que omite los casos en que la palabra termina en punto, que es lo que nos interesa.
Tu superratón hace palidecer a nuestros hámsters.
¡Muy bien, Guillermo!
Es otra posibilidad, aunque ya sabes que si el punto estuviera al final de una línea en mitad de un párrafo, tu comodín no lo borrará. Ídem si es una coma, punto y coma, dos puntos u otro signo de puntuación.
Esto va mucho a gusto del consumidor, pero creo que prefiero mi comodín. Es solo marcar y borrar todos los retornos que haya dentro.
☛ No podría vivir sin mi superratón…
Un fuerte abrazo,
… Jesús Prieto …
Hola
Muy buenas ideas, enhorabuena. Yo intentaría hacerlo todo de un solo paso sin andar seleccionado texto. Por ejemplo:
- Empiezo sustituyendo todos los puntos y calderón por punto asterisco calderón.
- Luego sustituyo todos los calderón por nada.
- y finalmente sustituyo el punto y asterisco por punto calderón..
Dejo la macro por si sirve de idea:
Sub QuitarSaltosDeParrafo1()
'
' QuitarSaltosDeParrafo1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ".^p"
.Replacement.Text = ".*^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Find.Execute Replace:=wdReplaceAll
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Find.Execute Replace:=wdReplaceAll
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ".*"
.Replacement.Text = ".^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Ya me dirás tú opinión.
Un saludo.
Hola, Alberto:
Sí, es una buena idea; se puede hacer así y al final comprobar los saltos, por si hay alguno que no debería haberse borrado.
Muchas gracias por la macro.
¡Un fuerte abrazo!
… Jesús Prieto …