I think P45cal is correct. That would make snb's and if instr(sn(j,1),"Green") should be and if instr(sn(j,2),"Green"). Do not use Option Explicit with snb's code.
Another example is:
Option Explicit
Option Compare Text 'For case insensitivity of color names in cells
Sub Test()
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If CBool(InStr(Cells(i, "A"), "Red")) Then
Cells(i, "C") = "Correct"
ElseIf CBool(InStr(Cells(i, "A"), "Blue") * InStr(Cells(i, "B").Offset(, 1), "Green")) Then
Cells(i, "C") = "Correct"
Else
Cells(i, "C") = "Incorrect"
End If
Next
End Sub
The compiler is supposed to auto convert all parameters after an If to Booleans, but I like to make sure. ie, The CBool() is supposed to be redundant. Zero = False, all other numbers = True. The Multiplier Operator(*) is the Math equivalent of Boolean "And". (+) is the equivalent of "Or".