我有一个包含多个表的word文档。 文档中的第一个表应该是一个汇总表,其中包含文档中其他表的某些行的副本。
我如何使用其他表的特定行来处理摘要表的自动填充?
我认为没有内置功能,我必须使用VBA。 我认为我必须使用某个标记(例如:" ###")标记要复制的行,以便检测代码。然后代码必须通过文档,找到所有" ###",将它们标记为"处理" (例如,使用" ## - ")并将相应的行复制/附加到第一个表中,然后再次遍历文档。
答案 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就可以完成。