如何根据循环中的日期差异标准对单元格进行着色

时间:2015-08-25 19:24:54

标签: vba excel-vba excel

我需要在F和A1的值之间的差值小于7的所有行中都显示黄色。因此,如果F4-A1 <7,则行4应为黄色,那么如果F5 -A1&lt; 7,第5行应为黄色..直到我的行结束。如果差异大于7,则该行应为空白。我非常感谢你的帮助

我尝试编写以下代码:

Sub futurospgtos()

Dim i As Integer
    For i = 15 To 1 Step -1
        If IsDate(Cells(i, 6).Value) - Range("A1") < 7 Then
       Rows(i).EntireRow.Interior.ColorIndex = 6
        Else
       Rows(i).EntireRow.Interior.ColorIndex = 3
        End If
    Next i
    Application.ScreenUpdating = False
End Sub

1 个答案:

答案 0 :(得分:0)

If IsDate(Cells(i, 6).Value) - Range("A1") < 7 Then有问题,因为IsDate将返回True或False值,而不是数字。你可以猜到为什么True - Range("A1") < 7会导致错误。

我检查是否有日期,如果是,那么我尝试进行减法。虽然我会谨慎地减去这样的日期。

Sub futurospgtos()

Dim i As Integer

Application.ScreenUpdating = False

    For i = 15 To 1 Step -1
        If IsDate(Cells(i, 6).Value) And IsDate(Range("A1")) Then
            If Cells(i, 6).Value - Range("A1") < 7 Then
                 Rows(i).EntireRow.Interior.ColorIndex = 6
            Else
                 Rows(i).EntireRow.Interior.ColorIndex = 3
            End If
        End if
    Next i

Application.ScreenUpdating = True

End Sub

如果遇到问题,可能是因为日期格式。请在评论中告诉我。