Vba 使用;如果和;更改特定红细胞的声明

Vba 使用;如果和;更改特定红细胞的声明,vba,excel,Vba,Excel,如果一个单元格的日期小于今天的日期,或者另一个单元格为空,我需要一个将特定单元格更改为红色的代码 例如,如果单元格“I5”小于今天的日期,并且单元格“G5”为空,则将填充单元格“I5”更改为红色。否则,将填充改为绿色。这需要对第一列中的每个单元格重复 这是我的代码,所以: With Sheet1 For Each rCell In .Range("I5", .Cells(.Rows.Count, 9).End(xlUp)).Cells If rCell.Value <

如果一个单元格的日期小于今天的日期,或者另一个单元格为空,我需要一个将特定单元格更改为红色的代码

例如,如果单元格“I5”小于今天的日期,并且单元格“G5”为空,则将填充单元格“I5”更改为红色。否则,将填充改为绿色。这需要对第一列中的每个单元格重复

这是我的代码,所以:

With Sheet1
    For Each rCell In .Range("I5", .Cells(.Rows.Count, 9).End(xlUp)).Cells
        If rCell.Value <= Date And Cells(46, 7).Value = "" Then
            rCell.Interior.Color = vbRed
            Else
            rCell.Interior.Color = vbGreen
        End If
    Next rCell
End With
带活页1
对于.Range(“I5”,.Cells(.Rows.Count,9).End(xlUp)).Cells中的每个rCell
如果rCell.Value单元格(46,7)是固定的,下面我假设每行G列。
不确定你的“带床单1”。除非创建了名为Sheet1的变量,否则应使用Sheets(“Sheet1”)。下面我会怎么做

With Sheets("Sheet1") ' or with ActiveSheet
    For i = 5 To .Cells(.Rows.Count, 9).End(xlUp).Row
        If .Cells(i, 9).Value <= Date And .Cells(i, 7).Value = "" Then
            .Cells(i, 9).Interior.Color = vbRed
        Else
            .Cells(i, 9).Interior.Color = vbGreen
        End If
    Next i
End With
带有工作表(“Sheet1”)或ActiveSheet
对于i=5到.Cells(.Rows.Count,9).End(xlUp).Row
如果.Cells(i,9).ValueCells(46,7)是固定的,那么下面我假设每行上都有G列。
不确定你的“带床单1”。除非创建了名为Sheet1的变量,否则应使用Sheets(“Sheet1”)。下面我会怎么做

With Sheets("Sheet1") ' or with ActiveSheet
    For i = 5 To .Cells(.Rows.Count, 9).End(xlUp).Row
        If .Cells(i, 9).Value <= Date And .Cells(i, 7).Value = "" Then
            .Cells(i, 9).Interior.Color = vbRed
        Else
            .Cells(i, 9).Interior.Color = vbGreen
        End If
    Next i
End With
带有工作表(“Sheet1”)或ActiveSheet
对于i=5到.Cells(.Rows.Count,9).End(xlUp).Row

如果.Cells(i,9).Value单元格(46,7)是固定的,那么它应该是固定的还是应该在每一行的G列中查找?而不是现在使用的“日期()。日期是一种类型,你的问题到底在哪里?什么不起作用?@Fredrik
Date
VBA
中的一个有效函数调用,返回当前系统日期(而
现在
返回系统日期和时间)。至于计算,我建议看一下
DateDiff
function@Dave我想我刚刚用now()得到了comfertable:-)单元格(46,7)是固定的,它应该是固定的,还是应该在每行的G列中查找?而不是使用now()的“日期”。日期是一种类型,你的问题到底在哪里?什么不起作用?@Fredrik
Date
VBA
中的一个有效函数调用,返回当前系统日期(而
现在
返回系统日期和时间)。至于计算,我建议看一下
DateDiff
function@Dave我想我现在可以和美女相处了!效果很好。Thank.OP可能使用Sheet1作为工作表的.CodeName,而不是名为“Sheet1.Beauty”的变量!效果很好。Thank.OP可能使用Sheet1作为工作表的.code名称,而不是名为“Sheet1”的变量。