Change color of certain characters in a cell
You can use the characters(start, length) property to do this. You can also store the text in a string and loop on that, which will be faster when you work with many cells. Here is an example:
Sub RedText()Dim i As LongDim text As Stringtext = Cells(1, 1).ValueFor i = 1 To Len(text) If IsNumeric(Mid$(text, i, 1)) = True Then Cells(1, 1).Characters(i, 1).Font.Color = vbRed End IfNextEnd Sub
You can use a RegExp for the same effect.
The advantage of the Regex approach being the code will isolate immediately any groups of numeric characters (or skip any strings that have no numerics) rather than testing each individual character.
So it offers a speed advantage if you are processing reasonably large data sets
Sub RegExpRed() Dim objRegex As Object Dim RegMC As Object Dim RegM As Object Set objRegex = CreateObject("vbscript.regexp") With objRegex .Global = True .Pattern = "\d+" If .test(Cells(1, 1).Value) Then Set RegMC = .Execute(Cells(1, 1).Value) For Each RegM In RegMC Cells(1, 1).Characters(RegM.FirstIndex + 1, RegM.Length).Font.Color = vbRed Next End If End WithEnd Sub