2017-01-05 2 views
0

У меня есть набор значений в столбце, 1 NA 0 1 0 NA и 0. Я запускаю успешный скрипт в столбце, чтобы выделить верхнее значение в темно-зеленом и верхние 50% значений (исключая верхнее значение) в светло-зеленом цвете.Условное форматирование Excel VBA - Удаление форматирования для значения 0

Range("K4:K10").Select 
Selection.FormatConditions.AddTop10 
With Selection.FormatConditions(1) 
    .TopBottom = xlTop10Top 
    .Rank = 50 
    .Percent = True 
End With 
With Selection.FormatConditions(1).Interior 
    .Color = 13434777 
End With 
Selection.FormatConditions.AddTop10 

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
With Selection.FormatConditions(1) 
    .TopBottom = xlTop10Top 
    .Rank = 1 
End With 
With Selection.FormatConditions(1).Interior 
    .Color = 3394611 
End With 

Это работает, но то, что я хочу сейчас делаю (и это будет добавлено ко всем столбцам, большинство из которых имеют гораздо более высокие цифры), это удалить выделение из любой ячейки со значением 0. Я попробовал ниже кода:

Dim wsrng As Range 
    For Each wsrng In Range("K4:K10") 
     If wsrng.Value = 0 Then 
      Selection.FormatConditions.Delete 
     End If 
    Next wsrng 

Но он удаляет подсветку из каждой ячейки в столбце независимо от значения. Есть идеи?

ответ

1

Изменить выбор на wsrng.

Dim wsrng As Range 
    For Each wsrng In Range("K4:K10") 
     If wsrng.Value = 0 Then 
      wsrng.FormatConditions.Delete 
     End If 
    Next wsrng 
+0

И должен ли мой первый код быть обернут этим? Или это должно следовать коду? – sbagnato

+0

Ничего, это сработало! – sbagnato

+0

Отлично, вы можете принять ответ? – Vinnie

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