Vba 使用日期比较的条件格式
我正在尝试在VBA中创建一个条件格式规则,该规则将仅更改当前日期的单元格背景颜色。我有一列这一年的日期。我也在使用OfficeExcel2010Vba 使用日期比较的条件格式,vba,date,excel,conditional-formatting,Vba,Date,Excel,Conditional Formatting,我正在尝试在VBA中创建一个条件格式规则,该规则将仅更改当前日期的单元格背景颜色。我有一列这一年的日期。我也在使用OfficeExcel2010 oSheet.Range(Cells(iStartRow, 1), Cells(iLastRow, 1)).FormatConditions.Add xlCellValue, xlEqual, "=" & Cells.Address & "=" & Date 我试图确定当前单元格的地址,以便与今天的日期进行比较。请记住,此公式
oSheet.Range(Cells(iStartRow, 1), Cells(iLastRow, 1)).FormatConditions.Add xlCellValue, xlEqual, "=" & Cells.Address & "=" & Date
我试图确定当前单元格的地址,以便与今天的日期进行比较。请记住,此公式将根据不同日期的列进行检查
我可以很容易地在Excel中创建条件格式,但我正在尝试用VBA代码重新创建此语句
当我为Excel中出现的日期创建必要的条件格式,然后在VBA中查看公式时;结果如下:
=FLOOR(A32,1)=TODAY()
以下内容将满足您的需求:
oSheet.Range(Cells(iStartRow, 1), Cells(iLastRow, 1)).FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & iStartRow & "=TODAY()"
如果要引用特定单元格进行日期比较,请使用(例如C1):
请注意,在这两个示例中,
a
之前都有一个$
,因为它是一个固定的列,但行之前没有$
,因为行(iStartRow
)需要是可变的。我不知道CF规则的代码如何适应周围的代码,但最好明确定义.Range
的范围,使其属于同一父工作表
with oSheet
.Range(.Cells(iStartRow, 1), .Cells(iLastRow, 1)).FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & iStartRow & "=TODAY()"
end with
前缀句点(例如句号或.)告诉
.Range(…
和.Cells(…
它们属于oSheet
)。没有它们,您的代码可能工作,也可能不工作。最近有几例简单的父级错误定义(通过依赖活动表)破坏了其他良好的代码。您应该能够通过:selection.address…提取当前单元格,可以吗?非常感谢,您的解决方案解决了问题并回答了我的问题。
with oSheet
.Range(.Cells(iStartRow, 1), .Cells(iLastRow, 1)).FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & iStartRow & "=TODAY()"
end with