Так что согласно моему комментарию, я бы посоветовал не использовать .Select
или UsedRange
. Вместо этого динамически получайте последние использованные строки и столбцы. Кроме того, в вашем операторе Like
отсутствуют символы подстановки, и вы захотите перебирать весь объект Range
.
Далее я бы сказал, что вы можете пропустить итерацию и использовать условное форматирование ИЛИ использовать ReplaceFormat
, например:
Sub Test()
Dim lr As Long, lc As Long, rng As Range, ws As Worksheet, FilterText As String
FilterText = InputBox("Enter Text")
If FilterText = "" Then Exit Sub
For Each ws In ThisWorkbook.Worksheets
'Get last used row and column
lr = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lc = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
'Set your range object
Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(lr, lc))
'Set your ReplaceFormat
With Application.ReplaceFormat
.Clear
.Font.Bold = True
End With
'Replace formatting to cells with right criteria
rng.Font.Bold = False
rng.Replace What:="*" & FilterText & "*", Replacement:="", SearchFormat:=False, ReplaceFormat:=True
Next ws
End Sub
Я пропустил aRange
, так как не заметил, что вы никогда даже использовать его.