我在Microsoft Word 2007中有一个VBA宏,它使用特定的背景阴影颜色查找文档中的所有表,然后删除该表。那部分工作正常。
但是,除了需要删除表之外,我还需要删除它后面的段落。总是遵循的段落是“宏文本”样式,其中没有文本。它只是为了“拆开桌子”而不是将它们组合成一个大桌子。
我该怎么做?以下是我删除表格的代码:
For Each aTable In ActiveDocument.Tables
If aTable.Rows(1).Cells(2).Shading.BackgroundPatternColor = wdColorGray15 Then
aTable.Delete
End If
Next aTable
答案 0 :(得分:1)
最简单的我认为你需要这样的东西。您可能需要扩展范围以包括整个段落,检查样式名称等。
Dim aTable As Word.Table
Dim rng As Word.Range
For Each aTable In ActiveDocument.Tables
If aTable.Rows(1).Cells(2).Shading.BackgroundPatternColor = wdColorGray15 Then
Set rng = aTable.Range
rng.Move unit:=wdParagraph, Count:=1
aTable.Delete
rng.Delete
Set rng = Nothing
End If
Next aTable
答案 1 :(得分:1)
感谢bibadia!你救了我! 正确答案(用于在所有表中的两个列表的任一列中查找灰色文本,然后删除这些表):
Dim aTable As Word.Table
Dim rng As Word.Range
For Each aTable In ActiveDocument.Tables
If aTable.Shading.BackgroundPatternColor = wdColorGray15 Then
Set rng = aTable.Range
rng.Move unit:=wdParagraph, Count:=1
aTable.Delete
rng.Delete
Set rng = Nothing
Else
If aTable.Rows(1).Cells(2).Shading.BackgroundPatternColor = wdColorGray15 Then
Set rng = aTable.Range
rng.Move unit:=wdParagraph, Count:=1
aTable.Delete
rng.Delete
Set rng = Nothing
End If
End If
Next aTable