PDA

Ver la Versión Completa : Copiar contenido de una tabla de un doc Word en una tabla de otro doc Word


hades2600
15-03-2009, 17:35:02
Buenas tardes, foreros.

Estoy desesperado. Llevo varíos días haciendo pruebas y buscando información por google y no encuentro por ninguna parte como se puede hacer esto.

Necesito copiar el contenido de una tabla de un documento Word en otra tabla de otro documento Word.

He conseguido abrir los dos documentos de Word a la vez y copiar una tabla, pero cuando intento pegar la información, lo hace en el documento original, con lo que me salen las mismas celdas de la tabla dos veces.

Os dejo una copia del código que estoy utilizando por si le podéis echar un vistazo y me podéis decir qué estoy haciendo mal:



WordApplication1.ShowMe;
AvanceDoc := WordApplication1.Documents.Open(AvanceFile, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
InformeDoc := WordApplication1.Documents.Open(InformeFile, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
for I := 1 to AvanceDoc.Tables.Count do begin
// Seleccionamos la tabla
AvanceTable := AvanceDoc.Tables.Item(i);
// Para todas las columnas
for j := 0 to AvanceTable.Columns.Count - 1 do
begin
for k := 0 to AvanceTable.Rows.Count - 1 do
begin
AvanceTable.Cell(k, j).Select; // Fila, Columna
WordApplication1.Selection.Copy; // Copiamos el texto al portapapeles
InformeDoc.Activate;
InformeTable := InformeDoc.Tables.Item(i);
InformeTable.Cell(k, j).Select;
InformeTable.Cell(k, j).Range.Paste; // Copiamos el contenido del portapapeles en la celda nueva.
end;
end;
end;
WordApplication1.ShowMe;
SaveChanges := wdDoNotSaveChanges;
WordApplication1.Quit(SaveChanges, EmptyParam, EmptyParam);