Is this what you're trying to do?:
Sub Test()
Dim lr As Long
Dim c As Range, myRange As Range
With Sheet1
If .AutoFilterMode = True Then .AutoFilterMode = False
lr = Cells(Rows.Count, "A").End(xlUp).Row
.Range("a1:b" & lr).AutoFilter field:=2, Criteria1:=""
On Error Resume Next
Set myRange = .Range("a2:a" & lr).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not myRange Is Nothing Then
For Each c In myRange.Cells
If Evaluate("SUMPRODUCT(--ISNUMBER(SEARCH({""red"",""blue"",""green""},""" & c.Value & """)))") > 0 Then c.Offset(, 1).Value = "found"
Next c
End If
End With
End Sub