以下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
答案 0 :(得分:2)
我的解决方案(当然有很多不同的方法可以解决这个问题)。将创建一个包含您要使用的格式的样式(或样式)。
然后在你的代码中你想要根据格式跳过/做的任何地方你可以通过这样做简单地询问样式(或样式)对当前单元格是否有效:
If Ac.style = "MyStyle" Then
' do stuff
Else
' do other stuff
end if
要检查多种不同的样式,您可以使用集合或脚本字典通过函数测试所有样式。如果您想了解其工作原理的详细信息,请与我们联系。