我在word文档中有一个表,我正在尝试添加一行。此附加行必须与表中用作模板的第一行相同。
我们假设我的表只有一行开头。我现在想添加一个具有相同规范的新行,然后合并所有3列。在那之下我想添加一个额外的行,但是再次有3列,就像第一行一样。 我尝试了什么:
Dim oTemplateRow As Word.Row
Set oTemplateRow = oTable.Rows(1)
oTemplateRow.Range.Copy
' adds a row like the template one
oTable.Rows.Last.Range.Paste
到目前为止,这么好。但是,如果我现在合并该行中的单元格然后重复粘贴,则新行显示之前之前添加的行,即使之前的范围崩溃 - 这是我不明白的。
oTable.Rows.Last.Cells.Merge
oTable.Rows.Last.Range.Collapse Direction:=wdCollapseEnd
oTable.Rows.Last.Range.Paste
oTable.Rows.Last.Range.Collapse Direction:=wdCollapseEnd
非常感谢任何帮助。
答案 0 :(得分:2)
看来我现在能够回答我自己的问题了。虽然它可能不是最优雅的解决方案,但它解决了我的问题。我只是用过 oTable.Rows.Add 在创建初始行之后,因此在下面创建一个精确的副本。当我需要添加一行时,我会重复这个过程并继续处理前一个过程。
Private Function addRow(ByRef oRow As Word.Row, Optional iNumberColumns As Integer = 3)
' add a row to the end, then work on the one before that
oTable.Rows.Add
Set oRow = oTable.Rows(oTable.Rows.Count - 1)
' if number of columns is 1 merge 2 to 4, if 2 merge 3 to 4
Select Case iNumberColumns
Case 1
oRow.Cells(2).Merge MergeTo:=oRow.Cells(4)
Case 2
oRow.Cells(3).Merge MergeTo:=oRow.Cells(4)
End Select
End Function
可能有点长,但对我有用。 问候 斯蒂芬