2011-11-05 47 views
2

我想我们有时间日期从细胞内具有比较比较()日期时间从细胞与两个日期VBA

我有代码,以便样式表自动刷新自己,所以当第一次约会的时间已经过期细胞变绿,当第二次日期和时间过期时,细胞会变红。

我只能得到这个工作来比较没有时间的日期和DateValue。

有与两个日期单元的colunm与倍mayorly(有时仅存在1日期和有时有没有时间只有一个日期)

细胞与时间两个日期将是如下面的例子。

----------------- 
12/11/2011 09:00 
13/11/2011 15:00 
----------------- 

这是我后至今多次尝试(cosidering,许多attemps的已被删除)

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测试结果,但没有成功。

任何帮助将非常感激。

回答

5

看看你的代码,它看到的日期/时间值是字符串。如果多数民众赞成的情况下使用

(DateValue(Cell) + TimeValue(Cell)) > Now() 

如果单元格中包含格式化为日期值,使用

Cell > Now() 

你可能会更好使用条件格式,而不是_Change事件。例如格式化细胞A3使用条件公式(注意,没有$的)

(DateValue(A3) + TimeValue(A3)) > Now() 

然后粘贴格式复制到任何其他细胞你想

+0

谢谢!这真的很不错+1。一个问题,当你说Cell我必须插入子串。我是否会用时间来保存整个日期,或者我是否将日期分割为dateValue和TimeValue的时间?谢谢! – Amra

+0

太棒了!我给了错误的子字符串。谢谢。 – Amra