The Problem (Q-score 2, ranked #78th of 95 in the VBA Core archive)
The scenario as originally posted in 2012
I would like to write a VBA function to highlight specific text within an excel cell. Is this possible? I’ve been googling but it’s unclear at this point.
to clarify, I would like to search a specific column for a text value (actually a list of values) and highlight the matched text in say yellow.
Note: this is what I ended up doing:
Sub Colors()
Dim searchString As String
Dim targetString As String
Dim startPos As Integer
searchString = "abc"
targetString = Cells(2, 1).Value
startPos = InStr(targetString, searchString)
If startPos > 0 Then
Cells(2, 1).Characters(startPos, Len(searchString)).Font.Color = vbRed
End If
End Sub
Why community consensus is tight on this one
Across 95 VBA Core entries in the archive, the accepted answer here holds solid answer (above median) status — meaning voters are unusually aligned on the right fix.
The Verified Solution — solid answer (above median) (+10)
9-line VBA Core pattern (copy-ready)
This is the basic principle, I assume that customizing this code is not what you are asking (as no details about this were provided):
Sub Colors()
With Range("A1")
.Value = "Test"
.Characters(2, 2).Font.Color = vbGreen
End With
End Sub
Small description although it speaks quite for itself: the first “2” refers to the first character that needs to be colored, the second “2” refers to the length.
When to Use It — vintage (14+ years old, pre-2013)
Ranked #78th in its category — specialized fit
This pattern sits in the 92% tail relative to the top answer. Reach for it when your scenario closely matches the question title; otherwise browse the VBA Core archive for a higher-consensus alternative.
What changed between 2012 and 2026
The answer is 14 years old. The VBA Core object model has been stable across Office 2013, 2016, 2019, 2021, 365, and 2024/2026 LTSC, so the pattern still compiles. Changes that might affect you: 64-bit API declarations (use PtrSafe), blocked macros in downloaded files (Mark-of-the-Web), and the shift toward Office Scripts for web-first workflows.