[英]Delete all text following a tagged Content control in a table cell in Word
[英]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.