Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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_Date_Excel_Conditional Formatting - Fatal编程技术网

Vba 使用日期比较的条件格式

Vba 使用日期比较的条件格式,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 我试图确定当前单元格的地址,以便与今天的日期进行比较。请记住,此公式

我正在尝试在VBA中创建一个条件格式规则,该规则将仅更改当前日期的单元格背景颜色。我有一列这一年的日期。我也在使用OfficeExcel2010

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