首页 > 解决方案 > 当 AutoFilter 更改时,每隔一个可见行自动添加“Zebra Stripes”

问题描述

我有大约 250 行的报告(变化 +/- 15 行,A - J 列)。为了使最终用户更容易看到报告,我使用 Zebra Stripes 对每一行进行格式化。问题在于,每当对数据应用过滤器时,斑马条纹(行)有时会聚集在一起,这完全违背了拥有它们的目的。

我想做的是在过滤器更改后每隔一个可见行出现斑马条纹 - 我知道这个网站上已经存在这样的代码 - 但我还希望自动发生这种情况而无需触发任何代码.

就添加格式而言,我当前的宏工作正常——但没有达到上述理想目标。任何指导表示赞赏。

Sub AddZebraStripes()

Dim c As Range, LastRow As Long
LastRow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row

Sheet1.Range("A2:J" & LastRow).Interior.ColorIndex = xlNone

For Each c In Sheet1.Range("A2:J" & LastRow)
If c.Row Mod 2 = 0 Then
    c.Interior.ThemeColor = xlThemeColorDark1: c.Interior.TintAndShade = -0.15
End If

Next c

End Sub

标签: excelvbaformat

解决方案


如果您的列中始终包含数据,您也可以轻松地使用条件格式。

公式中的引用指向所选数据列中的第一个单元格

请注意公式中的绝对与非绝对单元格引用。将格式设置为 true,然后根据您想要的条带方式,您可以在公式中反转“TRUE”和“FALSE”

=IF(MOD(SUBTOTAL(103,$A$2:$A2),2)=0,"TRUE","FALSE")

更新

要允许数据列中的空白值:

=IF(MOD(SUBTOTAL(103,$A$2:$A2)+COUNTBLANK($A$2:$A2),2)=0,"TRUE","FALSE")

推荐阅读