Изменить цвет шрифта для определенного символа в диапазоне ячеек

#excel #vba #character

#excel #vba #символ

Вопрос:

Я хотел бы изменить цвет шрифта для определенного символа в диапазоне ячеек. Я понял, как это сделать для одной ячейки (код прилагается), но я не могу понять, как это сделать для полного диапазона ячеек; B8: F12. Кто-нибудь может помочь?

Спасибо!

 Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer
Dim FindChar As String
Dim SearchString As String

SearchString = Range("B8").Value
FindChar = Chr(182)

For i = 1 To Len(SearchString)
    If Mid(SearchString, i, 1) = FindChar Then
        Range("B8").Characters(i, 1).Font.Color = RGB(221, 221, 221)
    End If
Next i

End Sub
  

Ответ №1:

 Sub ChangeColorIfMatchesCondition(byval cell as Range)
Dim i As Integer
Dim FindChar As String
Dim SearchString As String

SearchString = cell.Value
FindChar = Chr(182)

For i = 1 To Len(SearchString)
    If Mid(SearchString, i, 1) = FindChar Then
        cell.Characters(i, 1).Font.Color = RGB(221, 221, 221)
    End If
Next i
End Sub

Sub LoopAndChangeColorForThisRange()
dim cell

dim targetRange as Range
set targetRange = me.Range("B8:F12")

for each cell in targetRange.Cells
   ChangeColorIfMatchesCondition cell
next
End Sub
  

Выполните вызов LoopAndChangeColorForThisRange и посмотрите, работает ли он, как и следовало ожидать.

Комментарии:

1. Работает отлично! Спасибо за быстрый ответ.