My Excel sheet looks like this:
+=========+=========+=================================+======================================+
| MPN | BRAND | TITLE | URL |
+=========+=========+=================================+======================================+
| GB38905 | GRIFFIN | All-Terrain Case for iPhone ... | https://www.example.com/gb38905.html |
+---------+---------+---------------------------------+--------------------------------------+
.. and I need to highlight the background of the row to green|orange|red based on these conditions (all case insensitive):
- URL AND TITTLE contain MPN -> GREEN
- URL OR TITTLE contain MPN -> ORANGE
- URL OR TITTLE DO NOT contain MPN -> RED
This is my first attempt at using VBA:
Option Compare Text
Sub MySub()
Dim rng As Range
Dim row As Range
Dim cell As Range
Set rng = Range("A1: E17361")
For Each row In rng.Rows
For Each cell In row.Cells
MPN = Range("C1").Value
If InStr(Range("C3").Value, MPN) And InStr(Range("C4").Value, MPN) > 0 Then
cell.Interior.Color = vbGreen
ElseIf InStr(Range("C3").Value, MPN) Or InStr(Range("C4").Value, MPN) > 0 Then
cell.Interior.Color = vbOrange
Else
cell.Interior.Color = vbYellow
End If
Next cell
Next row
End Sub
.. and it obviously doesn't work. It turns ALL rows to green.
Instrreturns an integer, not aBoolean. ReplaceInStr(foo, bar) = TruewithInStr(foo, bar) > 0or justInStr(foo, bar) And InStr(foo, baz).