从Excel到Word的VBA在包含合并单元格的表格中添加表格行

时间:2017-07-04 16:37:28

标签: excel vba ms-word insert row

我已经在互联网上寻找解决我问题的方法,但没有答案。 我想要做的是使用Excel VBA在Word表中插入一行。该表包含我想插入行的区域外的一些合并单元格。对于没有合并单元格的表,我会做的是这样的:

Dim WrdApp As Word.Application
Dim docPA As Word.Document
Dim tabelWord As Word.Table

Set WrdApp = GetObject(, "word.Application")
Set docPA = WrdApp.Documents.Open(Application.ActiveWorkbook.Path & "\TabeleCopyV3.doc")
Set tabelWord = docPA.Bookmarks("TabelSOPotential").Range.Tables(1)
tabelWord.Rows(2).Select
WrdApp.Selection.InsertRowsAbove (5)

这适用于没有合并单元格的表格。但是,如果表中甚至有2个合并单元格(在我要插入数据的区域之外),则不会进行选择。我甚至无法使用此代码来处理表格单元格:

tabelWord.Rows(2).Cells(1).Range.text = "text"

我能解决单元格的唯一方法(并且它可以工作)是使用以下代码:

tabelWord.cell(2, 1).Range.text = "text"

这样我设法删除了这样的行:

tabelWord.cell(2, 1).Delete ShiftCells:=wdDeleteCellsEntireRow

但是如何以这种方式插入行? 谢谢!

1 个答案:

答案 0 :(得分:0)

经过几年发布问题的经验,我发现对于具有垂直合并单元格的表格的唯一解决方案是在模板文档中添加额外的行(通常大约 20 行就足够了)并执行 FOR 循环以删除空的带有删除代码的:

tabelWord.cell(2, 1).Delete ShiftCells:=wdDeleteCellsEntireRow