2012-09-13 1 views
2

Я хотел бы изменить цвет ячейки на основе ее уровня контура в excel, на уровне уровня i означает уровень группировки столбцов.Цвет по контуру Уровень (группа) в Excel

Я пытаюсь использовать свойство ActiveCell.OutlineLevel для использования в фильтре ColorByValue.

это возможно? или, есть ли способ сделать это через VBA или функцию?

colorbyvalue

+1

Я не думаю, что вы можете сделать это с помощью формулы, вам придется использовать VBA или, возможно, UDF будет работать. Используйте 'Columns (Range (" I1 ") Colum) .OutlineLevel", чтобы получить нужный уровень и применить цвет – JMax

+0

, как вы получили '-' на левой стороне ?! в моей версии (2007/German), это справа на вкладке « – Jook

+0

» вы найдете вкладку данных ... затем разверните раздел схемы, чтобы представить вам диалоговое окно «Настройки» .. затем снимите флажки с первых двух («Сводные строки ниже деталей» и «Сводные столбцы» вправо " – Hightower

ответ

3

Благодаря JMax я получил решение, основанное на ваши советы! ...

1 Добавить Условное форматирование Rule в ячейку, которая требует форматирования.

=OutlineLevel(CELL("col",CV1)) = 1 

edit formatting rule

2- Формула ссылается на небольшую функцию, которая выводит строки группировки уровень.

Function OutlineLev(inp As Integer) As Integer 
OutlineLev = Columns(inp).OutlineLevel 
End Function 

Можно ли найти более элегантное решение?

+0

ОК ... небольшая проблема .. в моей формуле. Как я могу сделать ссылку на ячейку динамической? Т.е. ... когда я применяю формулу для разных ячеек, изменяется строка (CV1 в моем случае)? – Hightower

+0

Glad вы нашли решение самостоятельно (и хороший - поддерживаемый, кстати). По вашему вопросу вы можете попытаться использовать [COLUMNS()] (http://chandoo.org/wp/2009/08/17/ rows-and-columns-excel-formula /) формула – JMax

+2

удалите $ sign из '$ CV $ 1', чтобы сделать его динамическим – SeanC

Смежные вопросы