查找月份并为单元格值着色

时间:2017-08-01 12:43:34

标签: excel vba excel-vba

我有第一栏的日期。 (2016年7月30日)。我想通过整个专栏,看看是否是本月。如果它不等于八月,那么我想(jan-July)是绿色的,它等于八月然后是白色,当它是未来时,它应该是黄色的。

我尝试了以下代码。它是黄色的。它只是寻找今天而不是月份。

你能帮我办法吗

Sub ChangeColour()

    Dim rCell As Range

    With Sheets("BU")
        For Each rCell In .Range("I5", .Cells(.Rows.Count, 9).End(xlUp)).Cells
            If rCell.Value < Month(today) Then
                rCell.Interior.Color = vbGreen
            ElseIf rCell.Value > Month(today) Then
                rCell.Interior.Color = vbYellow
            Else
                rCell.Interior.Color = vbWhite
            End If
        Next rCell
    End With

End Sub

3 个答案:

答案 0 :(得分:2)

您需要检查日期(单元格值)与当月的月份。今天也是一个永不定义的变量,所以你需要使用Month(Date)

例如:

Month(rCell.Value) < Month(Date)

答案 1 :(得分:0)

Sub ChangeColour()
Dim rCell As Range
With Sheets("BU")
    For Each rCell In .Range("I5", .Cells(.Rows.Count, 9).End(xlUp)).Cells
        If Month(rCell.Value) < Month(DateTime.Now) Then
            rCell.Interior.Color = vbGreen
        ElseIf Month(rCell.Value) > Month(DateTime.Now) Then
            rCell.Interior.Color = vbYellow
        Else
            rCell.Interior.Color = vbWhite
        End If
    Next rCell
End With
End Sub

答案 2 :(得分:0)

如果您的手表的日期是文字,则代码就是这样。

Request.Form["__EVENTARGUMENT"];