ms-word - tipos - tablas de microsoft word
Copiar filas de tabla con celdas combinadas (1)
Aquí es cómo superé el problema (probado en Word 2007 y Word 2003)
Sub CaseA()
Dim D As Document, T As Table
Set D = ActiveDocument
Set T = D.Tables(1) '' select the first table in the document
'' select from the start of row 1 to the start of row 4
D.Range(T.Cell(2, 1).Range.Start, T.Cell(4, 1).Range.Start).Select
Selection.Copy '' copy the rows
'' move the insertion point to the start of row 4
Selection.Collapse wdCollapseEnd
Selection.Paste '' insert a copy
'' (can do this as many times as you want)
End Sub
Sub CaseB()
Dim D As Document, T As Table
Set D = ActiveDocument
Set T = D.Tables(1)
'' select from the start of row 5 to the end of the last cell present in row 6
'' plus 1 character for column 5 plus 1 character to move outside the table
D.Range(T.Cell(5, 1).Range.Start, T.Cell(6, 4).Range.End + 2).Select
Selection.Copy '' copy the rows
'' move the insertion point just outside the table
Selection.Collapse wdCollapseEnd
Selection.Paste '' insert a copy
End Sub
Necesitaba insertar varias copias de un grupo de filas formateadas como se muestra a continuación.
+-------------------------------------------------+ | 1,1 | +-------------------------------------------------+ | | 2,2 | | 2,4 | | | 2,1 +---------+ 2,3 +---------+ 2,5 | | | 3,2 | | 3,4 | | +-------------------------------------------------+ | 4,1 | +-------------------------------------------------+ | | 5,2 | | 5,4 | | | 5,1 +---------+ 5,3 +---------+ 5,5 | | | 6,2 | | 6,4 | | +-------------------------------------------------+
En el caso A, necesitaba varias copias de las filas 1-3 insertadas antes de la fila 4.
En el caso B, necesitaba varias copias de las filas 4-6 insertadas al final de la tabla.
El método table.rows (n) no funciona y da el siguiente error:
Error "5991" en tiempo de ejecución:
No se puede acceder a filas individuales en esta colección porque la tabla tiene celdas fusionadas verticalmente
Sin embargo, uno puede hacer esto desde la interfaz de usuario, ¡así que debe ser posible!