Это в ответ на первоначальный вопрос, это просто модификация ответ Винсента:
Если это именованный диапазон (с помощью пользовательского интерфейса: Вставка, Имя, определение):
Dim c As Range
For Each c In Range("ColRange").Cells
If c.Value >= 0 And c.Value <= 500 Then
c.Interior.Color = RGB(255, 0, 0)
ElseIf c.Value >= -5 Then
c.Interior.Color = RGB(255, 255, 200)
Else
c.Interior.Color = RGB(0, 255, 0)
End If
Next c
Если это объект диапазон, определенный в коде:
Dim c as Range
For Each c In colRange.Cells
If c.Value >= 0 And c.Value <= 500 Then
c.Interior.Color = RGB(255, 0, 0)
ElseIf c.Value >= -5 Then
c.Interior.Color = RGB(255, 255, 200)
Else
c.Interior.Color = RGB(0, 255, 0)
End If
Next c
Я думаю, что ответ Винсента не будет работать, потому что он пытается работать со всем диапазоном ColRange внутри If Then, а не работать по каждой ячейке по одному. (По этой причине, вы также можете обернуть его Application.ScreenUpdating = Ложные
Пожалуйста, напишите ваш текущий код – 2008-11-26 14:20:57