I did not realize that you wanted to search the entire worksheet for multiple occurrences of the word in different cells
Try the following code which I have now modified to find multiple occurrences of the word in any particular cellas well as multiple occurrences throughout the worksheet.
Private Sub MakeRED_Click()
Dim ws As Worksheet
Dim rngCelToFind As Range
Dim strToFind As String
Dim lngFirst As Long
Dim lngLength As Long
Dim lngStart As Long
Dim i As Long
Dim strFirstAddr As String
Set ws = Worksheets("Sheet1") 'Edit "sheet1" to your sheet name
strToFind = "within" 'Example will search for cell containing word enclosed in double quotes
'Assign the length of the word to a variable
lngLength = Len(strToFind)
With ws.Cells
'rngCellToFind will contain the full reference of the cell where the word is found
Set rngCelToFind = .Find(What:=strToFind, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not rngCelToFind Is Nothing Then
strFirstAddr = rngCelToFind.Address 'Save address of first cell found
Do
'Loop through the entire string in the cell and
'find and format all occurrences of the word
lngStart = 1
For i = 1 To Len(rngCelToFind.Value)
lngFirst = InStr(lngStart, rngCelToFind.Value, strToFind)
If lngFirst = 0 Then Exit For 'If no more occurrences in the same cell
With rngCelToFind.Characters(lngFirst, lngLength).Font
.Color = RGB(0, 0, 255) 'Red
.Bold = True
End With
lngStart = lngStart + lngLength
Next i
Set rngCelToFind = .FindNext(rngCelToFind)
If rngCelToFind Is Nothing Then Exit Do 'If not found.
'FindNext loops around to start of search after last find
'Therefore test if looped around to the first address found and if so then exit
Loop While rngCelToFind.Address <> strFirstAddr
Else
MsgBox "No cells found containing word " & strToFind
End If
End With
End Sub