Добрый день, товарищи! Загуглил тему и прошу подтверждения: невозможно определить цвет заливки ячейки, если применено условное форматирование?
Добрый день, товарищи! Загуглил тему и прошу подтверждения: невозможно определить цвет заливки ячейки, если применено условное форматирование?rvshestakov
Добрый день. Опровергаю! если к ячейке применяется одно правило УФ, то легко определить. Если правил несколько, то уже надо думать-экспериментировать)
Добрый день. Опровергаю! если к ячейке применяется одно правило УФ, то легко определить. Если правил несколько, то уже надо думать-экспериментировать)sboy
Или Вам нужно не цвет заливки ячейки, а цвет, которым залило ячейку условное форматирование?
Именно это и надо.
Цитата
Это разные вещи
Я это понял, когда Interior.Color не посчитал условно отформатированную заливку
вот функция, которую я применяю. [vba]
Код
Function цветофункцияЗнач(Диапазон_суммирования As Range, Цвет_берется_из_ячейки As Range) For Each cll In Диапазон_суммирования.Cells If cll.Interior.ColorIndex = Цвет_берется_из_ячейки.Interior.ColorIndex Then summa = summa + 1 End If Next цветофункцияЗнач = summa End Function
[/vba]
Цитата
Или Вам нужно не цвет заливки ячейки, а цвет, которым залило ячейку условное форматирование?
Именно это и надо.
Цитата
Это разные вещи
Я это понял, когда Interior.Color не посчитал условно отформатированную заливку
вот функция, которую я применяю. [vba]
Код
Function цветофункцияЗнач(Диапазон_суммирования As Range, Цвет_берется_из_ячейки As Range) For Each cll In Диапазон_суммирования.Cells If cll.Interior.ColorIndex = Цвет_берется_из_ячейки.Interior.ColorIndex Then summa = summa + 1 End If Next цветофункцияЗнач = summa End Function
If cll.FormatConditions.Count Then cell_color = cll.FormatConditions(1).Interior.Color Else: cell_color = cll.Interior.Color End If
[/vba] НО! нужно смотреть реальный файл, т.к. цвет будет считываться даже когда правило УФ не выполняется. По сути cll.FormatConditions(1).Interior.Color выдает цвет для первого (по порядку) правила УФ в этой ячейке и не важно правило выполняется или нет.
Для примера [vba]
Код
If cll.FormatConditions.Count Then cell_color = cll.FormatConditions(1).Interior.Color Else: cell_color = cll.Interior.Color End If
[/vba] НО! нужно смотреть реальный файл, т.к. цвет будет считываться даже когда правило УФ не выполняется. По сути cll.FormatConditions(1).Interior.Color выдает цвет для первого (по порядку) правила УФ в этой ячейке и не важно правило выполняется или нет.sboy