我正在尝试使用Now()
比较单元格内的日期和时间我有代码所以样式表自动刷新本身,所以当第一个日期与时间过期时,单元格变为绿色,当第二个日期和时间过期时单元格将变为红色。
我只能通过DateValue比较没有时间的日期。
有一个colunm,其中包含两个日期和时间的单元格(有时只有一个日期,有时只有一个日期没有时间)
具有两个日期和时间的单元格将如下所示。
-----------------
12/11/2011 09:00
13/11/2011 15:00
-----------------
这是我在几次尝试后到目前为止所做的事情(考虑到已经删除了许多尝试)
Sub Worksheet_Change()
Set aWorkBook = Workbooks("Workbook.xls").Sheets("sheet 2").Range("C3:C10")
For Each Cell In aWorkBook
'MsgBox (Mid(Cell.Value, 1, 19))
If Cell.Value <> "" Then
MsgBox (Now < Mid(Cell.Value, 11, 6))
'MsgBox ((Mid(Cell.Value, 1, 17)) < Now())
'MsgBox ((Cell.Value))
If (CDate(Mid(Cell.Value, 1, 17)) < Now()) Then
'MsgBox ("Hello")
'Cell.Interior.ColorIndex = 3
End If
End If
Next
End Sub
在这种情况下,我使用msgbox来测试结果,但没有成功。
非常感谢任何帮助。
答案 0 :(得分:6)
查看代码,它会显示日期/时间值是字符串。如果是这样的话使用
(DateValue(Cell) + TimeValue(Cell)) > Now()
如果单元格包含格式为日期的值,请使用
Cell > Now()
您可能最好使用条件格式而不是_Change事件。例如,格式化单元格A3
使用条件公式(注意,没有$
的)
(DateValue(A3) + TimeValue(A3)) > Now()
然后将粘贴格式复制到您想要的任何其他单元格