2016-01-25 408 views
-2

我有一個單元格中的日期值(比方說A1),我想檢查使用vba是否該日期的時間大於或小於特定時間(比如說13小時)。我怎樣才能做到這一點?我試過了:如何比較時間使用vba

if Cells(1,1)<TimeValue("13:00:00") then 
'Something 
end if 

但是沒有奏效。
另外,如果我想獲得時差,例如我想知道13:00:00和13:10:00(這是10分鐘)之間的區別,我該怎麼做?

+1

比較蘋果與蘋果:)嘗試TIMEVALUE(細胞( 1,1).Text) – Jules

+0

要回答您的後續問題,請閱讀此藝術ICLE。 https://support.office.com/zh-cn/article/DATEDIF-function-25dba1a4-2812-480b-84dd-8b32a451b35c – Jules

回答

2
if TimeValue(Cells(1, 1).Value) < TimeValue("13:00:00") then 

應該工作。

+0

工作,但現在我有另一個問題。如果我想要得到時差,例如我想知道13:00:00和13:10:00(這是10分鐘)之間的區別,我該怎麼做? –

1
Sub time() 
If TimeValue(Cells(1, 1)) < TimeValue("1:00:00") Then 
MsgBox ("Yes") 
Else 
MsgBox ("No") 

End If 


End Sub 

下面是一個完整的實施例,你不能比較的整數與字符串的整數值只能與一個具有相同的數據類型,即整數僅與之相似時間值進行比較可以只用TIMEVALUE(一個或多個)進行比較..由於

+0

工作,但現在我有另一個問題。如果我想要得到時差,例如我想知道13:00:00和13:10:00(這是10分鐘)之間的區別,我該怎麼做? –

+0

這很容易@ N.Pavon,我會建議你在問任何事之前做一些研究,PS:它爲你的好 –

+0

,但如果你仍然想要它,我會給你相同的解決方案,讓我添加另一個回答 –

0

下面的代碼從範圍A1和A2的時間值,並顯示在A3.Just差異給你一個公平的想法它是如何工作的感謝

Sub timegap() 
Range("A1:A3").NumberFormat = "hh:mm:ss;@" 

Cells(3, 1).Value = Cells(1, 2).Value - Cells(1, 1).Value 
On Error GoTo here: 

here: 
Cells(3, 1).Value = Cells(2, 1).Value - Cells(1, 1).Value 

End Sub