Visual Basic - copiar/pegar macro word

Life is soft - evento anual de software empresarial
   
Vista:

copiar/pegar macro word

Publicado por Eduard (1 intervención) el 08/09/2009 14:35:48
Hola a todos,

Estoy haciendo una macro de word que tiene que hacer lo siguiente. El texto esta dividio en párrafos, y tengo que copiarlo a un nuevo documento e insertarlo dentro de una tabla de forma ordenada.
De estos párrafos cada cierto tiempo hay uno que és un titulo( cuya función para identificarlo tengo hecha).La estructura del documento original es esta:

Titulo 1
parrafo1
parrafo2
Titulo2
parrafo3
Titulo3

El objetivo seria que quedase asi (dentro de una tabla)

Titulo 1 parrafo1
parrafo2
Titulo2 parrafo3
Titulo3 ....
... ....

Lo que me gustaria saber es como puedo hacer para hacer un selection y un copi de todo el texto que hay enmedio de los 2 titulos (manteniendo el formato) para poder hacer el paste en la celda de la tabla correspondiente( en cada celda tiene que haber varios parrafos con diferentes formatos). Agradeceria mucho si alguien me pudiera ayudar.

El codigo que tengo actualmente és el siguiente:

'Insert a 1 x 2 table, fill it with data and change the column widths.
Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("endofdoc").Range, 2, 2)
i = 1
r = 1
ctr = 0
'put the tittles in the top of the table
oTable.Cell(r, 1).Range.text = "ID"
oTable.Cell(r, 2).Range.text = "Text"
While (i <= w.Paragraphs.Count)
If esTitol(w.Paragraphs(i).Range.text) = True Then
oTable.Rows.Add
r = r + 1
w.Paragraphs(i).Range.Copy
oTable.Cell(r, 1).Range.PasteAndFormat (wdFormatOriginalFormatting)
i = i + 1
Else
ctr = 1
With Selection.Find
.ClearFormatting
.text = w.Paragraphs(i - 1).Range.text
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute

Selection.MoveEnd Unit:=wdParagraph, Count:=1
'selects the whole paragraph
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
While esTitol(w.Paragraphs(i + ctr).Range.text) = False
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
ctr = ctr + 1
Wend
Selection.Copy
oTable.Cell(r, 2).Range.PasteAndFormat (wdFormatOriginalFormatting)
i = i + ctr
End If
Wend

Lo que me falla és que en cada selección me coje también los párrafos de título que hay antes y después del texto que yo quiero, y a veces alguna cosa mas también.

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

copiar/pegar macro word

Publicado por isaias zarate gonzalez (1 intervención) el 04/09/2014 18:18:11
Que tal amigo mira tengo un problema a ver si me puedes apoyar el asunto esta así.

Quiero copiar un rango de un docuemto que me indique inicio y fin del parrafo identificado por alguna letra especifica (star, end), luego pegarlo a otro documento de word con macros. apoyame con el codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar