Вы можете использовать функцию Union () для создания диапазона. Вот упрощенный пример (скажем, вы хотите выделить целые строки, в которых значение в столбце A было четным числом, и выделите их желтым цветом):
Sub UnionTest()
Dim myRange As Range
Dim cell As Range
For Each cell In Range("A1:A100")
If cell Mod 2 = 0 Then
If myRange Is Nothing Then
Set myRange = cell
Else
Set myRange = Union(myRange, cell)
End If
End If
Next
myRange.EntireRow.Interior.Color = vbYellow
End Sub
Обратите внимание, что вам нужно проверить, является ли диапазон пустым или нет, прежде чем использовать его для объединения (и раскрасить его, но для облегчения чтения кода, здесь я его опускал), таким образом, в операторе If-Then. В зависимости от того, что вы хотите сделать с каждой строкой, может оказаться более эффективным просто выполнить процесс в строке во время цикла for-each.