Perhaps something like this?
Sub FindOneLetterOff()
Dim nRow As Long, nCol As Long, str As String, sFirstAddress As String
Dim rg As Range, rgFind As Range
'Set Range to Search
Set rg = Range("$J$3:$Y$47")
With rg
For nCol = 1 To .Columns.Count
For nRow = 1 To .Rows.Count
str = .Cells(nRow, nCol)
'Chop last character off of string
If Len(str) > 1 Then str = Left$(str, Len(str) - 1)
Set rgFind = .Find(What:=str, Lookat:=xlWhole, After:=rg.Cells(1, 1))
If Not rgFind Is Nothing Then
sFirstAddress = rgFind.Address
Do
rgFind.Interior.ColorIndex = 3 'Red
Set rgFind = .FindNext(rgFind)
Loop While Not rgFind Is Nothing And rgFind.Address <> sFirstAddress
End If
Next nRow
Next nCol
End With
End Sub
Bookmarks