1

我在 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
4

2 回答 2

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
于 2013-10-13T09:58:19.003 回答
1

谢谢比巴迪亚!你救了我!正确答案(用于在所有表中的两个列表的任一列中查找灰色文本,然后删除这些表):

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
于 2013-10-15T15:28:21.370 回答