Вот пример, который использует регулярное выражение вместо длинного оператора OR. Я предположил из вашего кода, что число в конце строки предшествует да sh.
Sub colorBlue ()
Dim regex As Object
Set regex = CreateObject("vbscript.regexp")
'match 10,2,20,26,3,35,36,4,43,45,6,15,18,5
With regex
.Global = True
.MultiLine = False
.pattern = "(-)(2|3|4|5|6|10|15|18|20|26|35|36|43|45)$"
End With
Dim ws As Worksheet, cell As Range
Dim row, lastrow As Long
Set ws = ThisWorkbook.Sheets(2)
lastrow = ws.Range("B" & ws.Rows.Count).End(xlUp).row
For row = 1 To lastrow
Set cell = ws.Range("B" & row)
If regex.test(cell.Value) Then
cell.Interior.ColorIndex = 33
End If
Next row
End Sub
Для получения дополнительной информации см. Документы для Объектная модель и Регулярные выражения