Полагаю, быстрее всего будет использовать массив? Может быть какой-то фильтр, но я сейчас собираюсь сделать массив:
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Tabelle1").Range("B11:B500000") = 1
ThisWorkbook.Sheets("Tabelle1").Range("Q11:Q500000") = 2
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
Dim r1
Dim r2
r1 = ThisWorkbook.Sheets("Tabelle1").Range("B11:B" & LastRow)
r2 = ThisWorkbook.Sheets("Tabelle1").Range("Q11:Q" & LastRow)
For i = LBound(r1) To UBound(r1)
If r2(i, 1) = "001111" Then r1(i, 1) = vbGreen
If (r1(i, 1) < 4 Or r1(i, 1) > 0) And (r2(i, 1) <> "001111") Then r1(i, 1) = vbYellow
If (r1(i, 1) > 3 Or r1(i, 1) < 1) And (r2(i, 1) <> "001111") Then r1(i, 1) = vbRed
Next i
With ThisWorkbook.Sheets("Tabelle1")
For i = LBound(r1) To UBound(r1)
.Range("B" & 10 + i).Interior.Color = r1(i, 1)
Next
End With
Application.ScreenUpdating = True
Я бы sh мы могли бы применить .Interior.Color все в одном go, но я не могу этого получить работать. Если кто-то еще, я бы тоже хотел знать! Это выполняется в 24,75 с на моей машине. О, и я не проверял вашу логику c для вещей <,>, я просто добавил массив. Скорее всего, он сломается, если в одну из ячеек будет записано что-то неожиданное, например строка или что-то еще Также я предполагаю, что вы используете IFs вместо elseif по причине? Не то чтобы это действительно имело значение, если сделано в массиве, просто любопытно.