繁体   English   中英

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

[英]How to delete a text in a table cell when a specific word is found

在下面的代码中,当单词不存在时,将删除所有表的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

首先,你需要添加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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM