Но вашу задачу можно решить иначе (без перебора в цикле – это долго): через дескриптор поиска с использованием регулярных выражений.
Найдём ячейки, содержащие строку "Авито", и выделим найденные ячейки стандартным стилем "
Bad" (не знаю, как он называется в локализованной версии, и вы можете создать свой стиль под это дело). За диапазон принят весь лист (но можно детализировать). В цикле перебираются только найденные ячейки (точнее целые прямоугольные диапазоны
РАЗОМ). Это быстрее.
Sub HighlightMatches()
Const STYLE_NAME = "Bad" 'name of standard style (must exist)
Dim oSheet As Object
Dim oSearchDescriptor As Object, oFound As Object
Dim sPattern$ 'regex pattern (search criteria)
oSheet = ThisComponent.Sheets(0)
oSearchDescriptor = oSheet.createSearchDescriptor()
oSearchDescriptor.SearchRegularExpression = True
Rem oSearchDescriptor.SearchWords = True: sPattern = ".*Авито.*"
oSearchDescriptor.SearchWords = False: sPattern = "Авито"
oSearchDescriptor.SearchString = sPattern
oFound = oSheet.findAll(oSearchDescriptor) 'returns CellRanges
Dim i%
' For each cell found, apply the existing style.
If Not isNull(oFound) Then
For i = 0 To oFound.Count - 1
oFound(i).CellStyle = STYLE_NAME
Next
End If
End Sub
Прим. Регистр символов при поиске можно задать в свойстве дескриптора (SearchCaseSensitive) или непосредственно в регулярном выражении: "(?-i)".
Можно без стиля, а отформатировать непосредственно. Код выше не сбрасывает выделение.
Updated