2011-11-05 63 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