Excel 2010 VBA: установить цвет ячейки ссылки на ячейку в предыдущем столбце - PullRequest
0 голосов
/ 07 марта 2011

У меня есть макрос, который заполняет лист и копирует значения в сетку. Я хочу добавить условное форматирование в ячейки, чтобы при их обновлении, если они стали больше, чем в предыдущем столбце, они стали красными, меньше, они стали зелеными и стали 0, а серыми.

Моя проблема заключается в добавлении условия и ссылки на ячейку.

Set newCell = originalEstimateCell.Offset(0, 2 + i)
newCell.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="XX"
newCell.FormatConditions(1).Interior.Color = RGB(255, 0, 0)

Мой вопрос заключается в том, что заменяет XX для ссылки на предыдущий столбец в той же строке, т.е. если мы находимся в ячейке C7, я хочу сослаться на ячейку B7.

Спасибо

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Попробуйте это

Sub test()
    ActiveCell.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
                      Formula1:="=" & ActiveCell.Offset(0, -1).Address()
    ActiveCell.FormatConditions(1).Interior.Color = RGB(255, 0, 0)    
End Sub

Приведенный выше код заявляет, что текущее значение ячейки должно быть больше, чем значение формулы 1, а сама формула является адресом ячейки за один столбец перед активной ячейкой,Если вы хотите, чтобы какая-то другая ячейка была отформатирована относительно активной ячейки, просто измените параметры метода смещения.

Надеюсь, это помогло.

0 голосов
/ 07 марта 2011

Мой вопрос состоит в том, что заменяет XX ссылками на предыдущий столбец в той же строке, т.е.если мы находимся в ячейке C7, я хочу сослаться на ячейку C6.

C6 будет предыдущей строкой до C7, а не предыдущим столбцом

Try

=INDIRECT("C" & ROW()-1)

, чтобы получить значение из предыдущей строки

...