如何仅为可见单元格应用条件格式?

时间:2014-09-04 07:54:28

标签: excel excel-vba excel-2010 vba

我正在使用Excel-2010,我已经为Excel范围A1:F100应用了3scale条件格式,在Dropdown宏上隐藏/取消隐藏将被操作,并且隐藏/取消隐藏不是顺序的,例如: - 行1,10 ,30,54,67,88可能只能看到。

因此,对于这些可见行,相同的条件格式应该有效。

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

帮助很受赞赏。

提前致谢。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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)

问候

阿克塞尔