如何在找到特定单词时删除表格单元格中的文本

时间:2014-01-04 12:57:13

标签: vba word-vba word-2010

在我的下面的代码中,当单词不在那里时,所有表格contente都将被删除。怎么解决?对于多个表,文本在Cell(1,1)中。

Sub DeleteText()

StartWord = "Orientation:"
For Each oTbl In ActiveDocument.Tables
Set oRng = oTbl.Range

With oRng
.Find.Execute Findtext:=StartWord & "*", MatchWildcards:=True
.MoveStart wdCharacter, 0
.MoveEndUntil vbCr
.Delete

 End With
 Next
End Sub

1 个答案:

答案 0 :(得分:2)

首先,您需要添加if statement,以检查是否找到了您的文字。您将在下面的代码中找到它。但是,我还改进了删除找到文本的单元格的整个内容的方式。当你在单元格中有更多的行/段落/句子时,我的解决方案会更好。

Sub DeleteText_Improved()

Dim StartWord As String
Dim oTbl As Table
Dim oRng As Range

StartWord = "Mauris"

For Each oTbl In ActiveDocument.Tables
Set oRng = oTbl.Range

With oRng
.Find.Execute Findtext:=StartWord & "*", MatchWildcards:=True
If .Find.Found Then
    'how to select whole cell range
    oTbl.Cell(.Information(wdEndOfRangeRowNumber), _
            .Information(wdEndOfRangeColumnNumber)).Range.Delete

End If
End With
Next
End Sub

最终评论 - 您的代码仅适用于您搜索的单词的第一次出现。它不会删除单词出现的其他单元格。