Este código modificado permitirá que você insira várias palavras separadas por espaço, e todas elas serão destacadas:
Option Explicit
'v0.1.1
Sub HighlightStrings()
Dim xHStr As String, xStrTmp As String
Dim xHStrLen As Long, xCount As Long, I As Long
Dim xCell As Range
Dim xArr
On Error Resume Next
xHStr = Application.InputBox("What are the words to highlight:", "Word Higlighter")
If TypeName(xHStr) <> "String" Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Selection
Dim varWord As Variant
For Each varWord In Split(xHStr, Space$(1))
xHStrLen = Len(varWord)
xArr = Split(xCell.Value, varWord)
xCount = UBound(xArr)
If xCount > 0 Then
xStrTmp = ""
For I = 0 To xCount - 1
xStrTmp = xStrTmp & xArr(I)
xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.ColorIndex = 3
xStrTmp = xStrTmp & varWord
Next
End If
Next varWord
Next xCell
Application.ScreenUpdating = True
End Sub
Ele usa a função Split()
para separar as palavras inseridas em uma matriz e, em seguida, usa um loop extra para percorrer todas as palavras de cada célula na seleção.
Observe que o código faz distinção entre maiúsculas e minúsculas. Pode ser modificado para se tornar insensível a maiúsculas, alterando esta afirmação
xArr = Split(xCell.Value, varWord)
para isso
xArr = Split(UCase$(xCell.Value), UCase$(varWord))