Страницы: 1
RSS
Цикл по строками диапазона, Условное форматирование при помощи VBA
 
Коллеги, добрый день!
Может кто-нибудь подсказать мне в решении следующей ситуации. У меня емеется массив данных, состоящий из вдух строк rande("D:E"), где значения в строках различаются между друг другом и я хочу попробавать ввести макрос, который будет выделять зеленым цветом ячейки, которые больше и красным, которые меньше. Макрос для 2х ячеек в одной строке я написал, но знаний не хватает для написания цикла по строкам.

Код
If [d6] > [e6] Then
[e6].Font.Color = -16776961
[d6].Font.Color = -11489280
[d6].Font.Bold = True
Else
[d6].Font.Color = -16776961
[e6].Font.Color = -11489280
[e6].Font.Bold = True
End If
 
А чем не устраивает условное форматирование?
 
MBT,
1. Я в нем особо не разбираюсь.
2. Хочется разобраться с циклами VBA, потому что потом думаю больше пригодится, чем условное форматирование
 
Код
Sub uuu()
Dim ArrData
Dim i As Long
    ArrData = Range("D1:E10").Value  ' данные в массив
    
    For i= 1 To UBound(ArrData) ' цикл по "строкам" (по первой размерности)
        If ArrData(i,1) > ArrData(i, 2) Then
            '-------
        Else
            '-------
        End If
    Next i
End Sub
 
vikttur, попробовал сделать по предложенному Вами пути, но что-то пошло не так
Код
Sub uuu()
Dim ArrData
Dim i As Long
    ArrData = Range("D6:k12").Value 
     
    For i = 1 To UBound(ArrData)
        If ArrData(i, 1) > ArrData(i, 2) Then
            Cells(i, 1).Font.Color = -16776961
        Else
            Cells(i, 2).Font.Color = -11489280
        End If
    Next i
End Sub
 
  Попробуйте так
Код
Sub uuu()
Dim ArrData
Dim i As Long
    with Range("D6:k12"
    ArrData = .Value 
     For i = 1 To UBound(ArrData)
        If ArrData(i, 1) > ArrData(i, 2) Then
            .Cells(i, 1).Font.Color = -16776961
        Else
            .Cells(i, 2).Font.Color = -11489280
        End If
    Next i
    end with 
End Sub

 
MBT и vikttur, спасибо за советы, конечный вариант сработал!
Страницы: 1
Наверх