Excel vba - 跳过已突出显示的行

时间:2012-02-18 06:41:50

标签: excel vba rows highlight

以下excel vba代码将顶行中的日期与E列和F列中的开始日期和结束日期进行比较。 然后它会突出显示细胞以在每一行中生成一个颜色条。

如何跳过已突出显示的行并在输入有效日期后自动创建彩色条?提前感谢您提供的任何帮助。

Set Rng = Range(Range("E7"), Range("E" & RowS.Count).End(xlUp)) 'The start end dates are in columns E and F
DateRng.Resize(Rng.Count + 1).Interior.ColorIndex = xlNone

For Each Dn In Rng
    For Each Ac In DateRng

        If Ac >= Dn And Ac <= Dn.Offset(0, 1) Then
            Ac.Offset(Dn.Row - 2 - 0).Interior.ColorIndex = Range("D4").Value
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).Color = vbWhite
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).LineStyle = xlContinuous
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).Weight = xlThick
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).Color = vbWhite
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).LineStyle = xlContinuous
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).Weight = xlThick
        End If
    Next Ac
Next Dn

V

1 个答案:

答案 0 :(得分:2)

我的解决方案(当然有很多不同的方法可以解决这个问题)。将创建一个包含您要使用的格式的样式(或样式)。

然后在你的代码中你想要根据格式跳过/做的任何地方你可以通过这样做简单地询问样式(或样式)对当前单元格是否有效:

If Ac.style = "MyStyle" Then
' do stuff
Else
' do other stuff
end if

要检查多种不同的样式,您可以使用集合或脚本字典通过函数测试所有样式。如果您想了解其工作原理的详细信息,请与我们联系。