【问题标题】:Excel vba - skip rows already highlightedExcel vba - 跳过已经突出显示的行
【发布时间】:2012-03-09 12:02:58
【问题描述】:

以下 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

【问题讨论】:

  • 向我们展示完整的代码。 DateRng 在哪里声明?您还应该使用 Option Explicit 强制变量声明

标签: excel vba rows highlight


【解决方案1】:

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

然后在代码中您想要根据格式跳过/执行的任何位置,您可以通过执行以下操作简单地询问样式(或样式)是否对当前单元格有效:

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

要检查多种不同的样式,您可以使用集合或脚本字典通过函数测试所有样式。如果您想进一步了解其工作原理,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多