MicrosoftWord2007VBA-找到紧跟在表格后面的段落吗?
我在MicrosoftWord2007中有一个VBA宏,它可以查找文档中具有特定背景阴影颜色的所有表,然后删除该表。那部分很好用 但是,除了需要删除表之外,我还需要删除它后面的段落。始终紧跟其后的段落是“宏文本”样式,其中没有文本。它只是将桌子彼此“分开”,这样它们就不会合并成一张大桌子 我该怎么做?以下是我删除表的代码:MicrosoftWord2007VBA-找到紧跟在表格后面的段落吗?,vba,ms-word,office-2007,Vba,Ms Word,Office 2007,我在MicrosoftWord2007中有一个VBA宏,它可以查找文档中具有特定背景阴影颜色的所有表,然后删除该表。那部分很好用 但是,除了需要删除表之外,我还需要删除它后面的段落。始终紧跟其后的段落是“宏文本”样式,其中没有文本。它只是将桌子彼此“分开”,这样它们就不会合并成一张大桌子 我该怎么做?以下是我删除表的代码: For Each aTable In ActiveDocument.Tables If aTable.Rows(1).Cells(2).Shading.Backgro
For Each aTable In ActiveDocument.Tables
If aTable.Rows(1).Cells(2).Shading.BackgroundPatternColor = wdColorGray15 Then
aTable.Delete
End If
Next aTable
简单地说,我认为你需要这样的东西。您可能需要扩展范围以包括整个段落,检查样式名称等
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
谢谢你,比巴迪亚!你救了我! 回答正确(用于在所有表格的两列表格的任一列中查找灰色文本,然后删除这些表格):
令人惊叹的!这很有效。。。虽然我在那一行中“有点”误导了你。。。第一次检测到东西不工作(无论什么原因)。我通常需要检查表格中的灰色,然后检查第二个单元格中的灰色(以涵盖我的两种情况-在表格的任一列中查找灰色)。因此,正确的代码(此处适用于可能使用此解决方案的其他人):
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