2014-09-04 39 views
0

我正在使用Excel-2010,我已经为Excel范围A1:F100应用3scale条件格式,在下拉宏上隐藏/取消隐藏将被操作,隐藏/取消隐藏不是顺序的,例如: - 第1,10行, 30,54,67,88可能只可见。如何仅为可见单元格应用条件格式?

因此,只有这些可见的行,相同的条件格式应该工作。

我试过浏览找到它,但我无法获得所需的内容。

帮助非常感谢。

在此先感谢。

+0

我认为你必须以编程方式做到这一点。就像改变格式适用的范围一样。 [请参阅此处了解如何将格式应用于一系列单元格](http://stackoverflow.com/questions/22500483/conditional-formatting-using-3-conditions-in-macro-vba/22501780#22501780) – L42 2014-09-04 09:28:42

+0

如果你可以接受平均值而不是中位数(50%-PERCENTILE),那么对于最小值,中点和最大值,可能有SUBTOTAL公式。 – 2014-09-04 09:54:19

回答

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 

每次该程序运行或调用,它重新格式化适用于可见光范围。
它可以合并到一个现有的代码或单独运行。 HTH。

+0

:-)太好了,谢谢L42,这就像现成的代码一样,只改变颜色代码。非常感激。 – Punith 2014-09-04 10:40:38

+0

@expfresh np。很高兴它帮助并希望能帮助更多的读者。我在这个网站上收到很多帮助。如果可以,我只是放弃。 – L42 2014-09-05 00:22:27

1

对于最小值,中点和最大值,SUBTOTAL公式有可能存在。

最低:类型=公式,=SUBTOTAL(105,$A$1:$F$100)

中点:类型=公式,=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%的平均水平百分点作为中点,Midpoint的公式会更简单:

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

Gre etings

Axel

+2

在Excel 2010中,您可以使用'AGGREGATE'函数来忽略隐藏的行,并且其中有'Median'的内置选项,例如'= AGGREGATE(12,1,A1:F100)' – 2014-09-04 11:24:31

相关问题