将某个表行从一个表复制到另一个表

时间:2015-11-16 14:17:00

标签: ms-word copy row word-vba

我有一个包含多个表的word文档。 文档中的第一个表应该是一个汇总表,其中包含文档中其他表的某些行的副本。

我如何使用其他表的特定行来处理摘要表的自动填充?

我认为没有内置功能,我必须使用VBA。 我认为我必须使用某个标记(例如:" ###")标记要复制的行,以便检测代码。然后代码必须通过文档,找到所有" ###",将它们标记为"处理" (例如,使用" ## - ")并将相应的行复制/附加到第一个表中,然后再次遍历文档。

1 个答案:

答案 0 :(得分:1)

您可以使用书签标记行;使用特殊前缀命名它们。循环遍历书签集合,检查前缀,如果它是正确的,请将行附加到sumamry表。如果您愿意,可以删除流程中的书签。

这里有一些示例代码,可以在快速测试中为我工作。 boomkark前缀是" tbl&#34 ;;如果您不希望用户看到它,请使用下划线(_)开始名称。

摘要表的目标范围位于文档的开头。如果您在其他地方需要,可以将分配更改为rng对象。

Dim doc As word.Document
Dim rng As word.Range
Dim rwSource As word.Row
Dim bkm As word.Bookmark

Set doc = ActiveDocument
Set rng = doc.Range(0, 0)

For Each bkm In doc.Bookmarks
    If Left(bkm.Name, 3) = "Tbl" Then
        rng.FormattedText = bkm.Range.FormattedText
        rng.Collapse wdCollapseEnd
    End If
Next

注意:我尝试使用REF字段来获取已添加书签的行,而不需要VBA。这会在每个REF字段之间插入一个空行,所以我不认为没有VBA就可以完成。