2016-01-25 407 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