Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
623 views
in Technique[技术] by (71.8m points)

excel - Change font color for specific char in a cell range

I would like to change the font color for a specific character within a range of cells. I figured out how to do this for a single cell (code attached), but I can't figure out how to do it over a full range of cells; B8: F12. Can anyone help?

thanks!

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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
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

Make a call to LoopAndChangeColorForThisRange and see if it works, as you'd expect.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...