我正在尝试弄清楚如何在 Word 中更新链接表时防止 Word 删除“在每页顶部重复为标题行”选项。我的一个文档中有来自多个数据源的约 300 个链接表,因此每次将表格复制并粘贴到 Word 文档中都需要花费大量时间。
我尝试在 Excel 的页面设置选项中选择重复行选项,但这似乎也不起作用。
有没有一种方法可以让我使用 VBA 以编程方式将所有表格复制到 Excel 中,或者防止 Word 在每次更新链接表格时删除表格属性?
答案1
我找到了一种解决方法,其中涉及嵌套表。
从 Excel 复制标题行单元格,然后将其粘贴到 Word 中。在该标题下添加一行。删除此单元格内除外线以外的所有边框线。此外,将剩余边框设置为不可见,这样您将获得如下所示的表格: 单排表
之后,您需要将不可见单元格的边距设置为 0 厘米。右键单击单元格 > 表格属性 > 单元格选项卡 > 选项,然后在对话框中将所有单元格边距设置为 0 厘米。
现在剩下的就是链接除标题之外的所有 Excel 行。另外,不要忘记在外部表格上“重复标题行”。
希望它能解决你的问题!
答案2
好的。所以我继续编写了一个宏,它将保存每个表中每行的所有 HeadingFormat 属性,更新所有表,然后重新应用这些格式属性。该宏似乎运行良好,应该可以用于其他应用程序。尽情享受吧!
Public Sub UpdateTables()
'Get Table Formats
Dim i As Integer
Dim j As Integer
Dim tablecount As Integer
tablecount = ActiveDocument.Tables.Count
Dim tableformats() As Integer
ReDim tableformats(tablecount)
For i = 1 To tablecount
j = 1
Do While ActiveDocument.Tables(i).Rows(j).HeadingFormat = -1
tableformats(i) = tableformats(i) + 1
j = j + 1
Loop
'MsgBox (tableformats(i))
Next i
'Update Table References
ActiveDocument.Fields.Update
'Apply Table Formating to Updated Tables
For i = 1 To tablecount
For j = 1 To tableformats(i)
If ActiveDocument.Tables(i).Rows(j).HeadingFormat = 0 Then
ActiveDocument.Tables(i).Rows(j).HeadingFormat = wdToggle
End If
Next j
Next i
End Sub