【问题标题】:VBA from Excel to Word add table row in table with merged cells从 Excel 到 Word 的 VBA 在包含合并单元格的表格中添加表格行
【发布时间】:2017-12-08 05:01:39
【问题描述】:

我在整个互联网上寻找解决问题的方法,但没有答案。 我想要做的是使用 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

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

【问题讨论】:

    标签: excel vba ms-word insert row


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多