2014-09-04 5 views
0

Я использую Excel-2010, я применил условное форматирование 3scale для диапазона Excel A1: F100, в макросе скрытой маскировки/unhide будет выполняться действие, а hide/unhide не является последовательным, например: - Строки 1,10, 30,54,67,88 может быть только видимым.Как применить условное форматирование только для видимых ячеек?

Так что только для этих видимых строк должен работать тот же условный формат.

Я пробовал просматривать его, но я не мог получить требуемый.

Помощь очень ценится.

Заранее спасибо.

+0

Я думаю, вы должны программно это сделать. Как изменение диапазона, к которому применяется форматирование. [См. Информацию об использовании форматирования для ряда ячеек программным способом] (http://stackoverflow.com/questions/22500483/conditional-formatting-using-3-conditions-in-macro-vba/22501780#22501780) – L42

+0

Если вы можете принять СРЕДНЕЕ, а не MEDIAN (50% -ПЕРКЛЕТИЮ) для Midpoint, тогда есть возможность с SUBTOTAL формулами для Minimum, Midpoint и Maximum. –

ответ

1

Как прокомментировал, это должно быть что-то вроде этого:

Sub ject() 
    Dim rng As Range 
    With Sheet1 '~~> change to your actual sheet 
     .Range("A1:F100").FormatConditions.Delete 
     Set rng = .Range("A1:F100").SpecialCells(xlCellTypeVisible) 
     .Range("A1").FormatConditions.AddColorScale 3 
     With .Range("A1").FormatConditions(1) 
      With .ColorScaleCriteria(1) 
       .Type = xlConditionValueLowestValue 
       .FormatColor.Color = RGB(255, 0, 0) 
      End With 
      With .ColorScaleCriteria(2) 
       .Type = xlConditionValuePercentile 
       .FormatColor.Color = RGB(255, 255, 0) 
      End With 
      With .ColorScaleCriteria(3) 
       .Type = xlConditionValueHighestValue 
       .FormatColor.Color = RGB(0, 255, 0) 
      End With 
      .ModifyAppliesToRange rng 
     End With 
    End With 
End Sub 

Everytime эта процедура запускается или вызывается, она повторно применяет форматирование в видимом диапазоне.
Он может быть включен в существующий код или запускаться отдельно. НТН.

+0

:-) Отлично, спасибо L42, Это похоже на готовый код, Изменены только цветовые коды. Очень признателен. – Punith

+0

@expfresh np. рад, что это помогло и надеется, помогает больше читателей. Я очень много помогаю себе на этом сайте. Я просто отдаю, если смогу. – L42

1

Существует возможность с SUBTOTAL формулами для Minimum, Midpoint и Maximum.

Минимум: Тип = Формула, =SUBTOTAL(105,$A$1:$F$100)

Midpoint: Тип = Формула, =MEDIAN(IF((SUBTOTAL(103,INDIRECT("A"&ROW($1:$100)))>0)*($A$1:$F$100<>""),$A$1:$F$100))

Максимум: Тип = Формула, =SUBTOTAL(104,$A$1:$F$100)

Если бы вы могли принять среднее значение вместо 50% процентиль в качестве промежуточной точки, формула для средней точки будет проще:

=SUBTOTAL(101,$A$1:$F$100) 

Gre ссылки

Axel

+2

В Excel 2010 вы можете использовать функцию 'AGGREGATE', чтобы игнорировать скрытые строки и которая имеет встроенную опцию для' Median', например. '= СОВОКУПНАЯ (12,1; A1: F100)' –

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