¿Cómo buscar varios textos en un mismo rango de WORD?

Si Set rng = ActiveDocument.Paragraphs(1).Range

Al hacer una búsqueda;

If rng.Find.Execute(findText:="Hola") Then

Si encuentra el texto se verifica que rng=Hola, es decir, cambia el RANGO, por lo que no podemos hacer una nueva búsqueda.

Si hay que hacer tres búsquedas, lo soluciono así:

Si Set rng1 = ActiveDocument.Paragraphs(1).Range

Si Set rng2 = ActiveDocument.Paragraphs(1).Range

Si Set rng3 = ActiveDocument.Paragraphs(1).Range

Y ahora:

If rng1.Find.Execute(findText:="Hola") Then, etc

Debe haber una solución más técnica.

Respuesta
1

Esta es la solución que he encontrado; la explico con un ejemplo

Ejemplo:

De la siguiente frase queremos borrar las palabras Publicado por, el día, |, Edición impresa

Publicado por RAFAEL GARCÍA el día | 13/08/2015 Edición impresa

 

SUB PARENT6()

Dim rng As Range

Dim TextoArray(4) As String, Texto As Variant

Set rng = ActiveDocument.Paragraphs(1).Range

Texto = Array("Publicado por ", "el día ", "|", "Edición impresa")

For i = 1 To 4

TextoArray(i) = Texto(i)

Next

For i = 1 To 4

   With rng.Find

     .ClearFormatting

     .Text = TextoArray(i)

     .Forward = True

     .Execute

       If .Found = True Then

         rng.Delete

       .Parent.Expand Unit:=wdParagraph

         End If

   End With

Next

End Sub

RESULTADO

RAFAEL GARCÍA  13/08/2015 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas