Не идеально, но должно работать следующее.Измените имя листа, как требуется.Теоретически вы можете отбросить часть IsEmpty, если все ячейки имеют формулу.
Dim rng As Range
For Each rng In ThisWorkbook.Worksheets("Sheet1").Range("C2:E" & lastRow)
If IsEmpty(rng) Or rng = vbNullString Then rng.Interior.Color = vbRed
Next
Вы также можете использовать SpecialCells с формулами, чтобы делать только ячейки с формулами (проверить, что формулы присутствуют первыми, или обработчик ошибок в случае, еслине найдено):
Dim rng As Range
For Each rng In ThisWorkbook.Worksheets("Sheet1").Range("C2:E" & lastRow).SpecialCells(xlCellTypeFormulas)
If rng = vbNullString Then rng.Interior.Color = vbRed
Next
Вы можете использовать union
для объединения различных диапазонов:
Dim rng As Range
With ThisWorkbook.Worksheets("Sheet1")
For Each rng In Union(.Range("C2:E" & lastRow), .Range("G2:G" & lastRow), .Range("Q2:R" & lastRow)).SpecialCells(xlCellTypeFormulas)
If rng = vbNullString Then rng.Interior.Color = vbRed
Next
End With