Как удалить текст в ячейке таблицы, когда найдено определенное слово
В моем коде ниже, когда слово отсутствует, все содержимое таблицы удаляется. Как это исправить? Текст находится в ячейке (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 ответ
Решение
Прежде всего вам нужно добавить 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
Последнее замечание- ваш код работает только для первого вхождения искомого слова. Это не удалит другие ячейки, где появляется слово.