我正在使用以下宏来遍历 Word 文档并从其中的所有表中删除颜色,但第一个表除外。
由于使用合并字段自动填充这些文档的应用程序存在表单保护问题,我们的文档绝对不能与表单字段一起使用。所以,下一个最好的事情是只标记仍然需要用阴影填充的内容,然后在打印文档之前移除阴影。但是,当此代码遍历文档时,它会删除某些表格的一些边框。
我绝对不想要这个,我只想去除阴影。我不知道它为什么这样做,所以如果有人对此有任何见解,那将是最有帮助的。如果没有,如果我可以调整此宏以仅更改具有非白色背景颜色的单元格,那也可以。
我尝试了嵌套循环的几种变体,但无法让它以这种方式运行。
Sub decolordocument()
Dim tbl As Table
Dim first As Boolean
first = True
For Each tbl In ActiveDocument.Tables
If first Then
first = False
Else
tbl.Shading.BackgroundPatternColor = wdColorWhite
End If
Next
MsgBox "Shaded cells in tables have been updated."
End Sub
我也尝试了这段代码,并得到了相同的边框被删除效果:
Sub decolordocument()
Dim tbl As Table
Dim tblCount As Long
Dim i As Long
Dim first As Boolean
tblCount = ActiveDocument.Tables.Count
For i = 2 To tblCount
With ActiveDocument.Tables(i).Shading
.BackgroundPatternColor = wdColorWhite
End With
Next
MsgBox "Shaded cells in tables have been updated."
End Sub
编辑:虽然我仍然看不出是什么使这些表格失去了边界,但我发现以某种方式拆分表格会导致它们不会失去边界。我已经尽力将其隔离,但没有运气,因为似乎只有某种事物的组合会导致边界的丧失。但是,至少我有一些有用的东西。如果任何人都可以提供一个宏来按照最初的要求遍历各个单元格,那么放在后袋中可能不是一个坏选择。