Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何根据循环中的日期差标准为单元格着色_Vba_Excel - Fatal编程技术网

Vba 如何根据循环中的日期差标准为单元格着色

Vba 如何根据循环中的日期差标准为单元格着色,vba,excel,Vba,Excel,我需要在F列和A1列之间的差值小于7的所有行中使用黄色。因此,如果F4-A1是行如果IsDate(单元格(i,6).Value)-Range(“A1”)

我需要在F列和A1列之间的差值小于7的所有行中使用黄色。因此,如果F4-A1是行
如果IsDate(单元格(i,6).Value)-Range(“A1”)<7,则
是有问题的,因为IsDate将返回真值或假值,而不是数字。您可以猜测为什么
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
Sub futurospgtos()
作为整数的Dim i
Application.ScreenUpdating=False
对于i=15到1步骤-1
如果IsDate(单元格(i,6).值)和IsDate(范围(“A1”)),则
如果单元格(i,6).值范围(“A1”)<7,则
行(i).EntireRow.Interior.ColorIndex=6
其他的
行(i).EntireRow.Interior.ColorIndex=3
如果结束
如果结束
接下来我
Application.ScreenUpdating=True
端接头
如果您遇到问题,可能是因为日期格式。请在注释中告诉我。

如果IsDate(单元格(i,6).Value)-Range(“A1”)<7,则行
有问题,因为IsDate将返回真值或假值,而不是数字。您可以猜测为什么
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
Sub futurospgtos()
作为整数的Dim i
Application.ScreenUpdating=False
对于i=15到1步骤-1
如果IsDate(单元格(i,6).值)和IsDate(范围(“A1”)),则
如果单元格(i,6).值范围(“A1”)<7,则
行(i).EntireRow.Interior.ColorIndex=6
其他的
行(i).EntireRow.Interior.ColorIndex=3
如果结束
如果结束
接下来我
Application.ScreenUpdating=True
端接头

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

您能告诉我哪一行导致错误吗?也许我们应该检查A1是否也是一个日期,不是吗?我将把它添加到答案中。另外,我在开始时将application.screenUpdatement=False,这样它就不会一个接一个地显示更改(尽管对于15行,您不会看到差异)。最后我让它回到了现实。我相信这就是你想要的。你能告诉我是哪一行造成了错误吗?也许我们应该检查A1是否也是一个日期,不是吗?我将把它添加到答案中。另外,我在开始时将application.screenUpdatement=False,这样它就不会一个接一个地显示更改(尽管对于15行,您不会看到差异)。最后我让它回到了现实。我相信这就是你想要的。