VB6中的时间格式不能比较

时间:2016-01-04 18:13:54

标签: vba vb6

我在VB6中遇到这种情况:

If ((Time >= #12:20:00 PM# And Time <= #3:00:00 PM# And boolTarde = False)

我想通过变量更改此固定值(#12:20:00 PM##3:00:00 PM#)。 我在字符串变量"12:20:00""03:00:00"中加载了值InitAmanhaFimAmanha,因此我写了一个新条件:

 If ((Time >= InitAmanha And Time <= FimAmanha And boolTarde = False)
   end if 

但是,这并不能比较任何事情。是否有必要连接'PM#'

1 个答案:

答案 0 :(得分:2)

您应该使用VBA中原生的TimeValue函数。 例如:

Dim myStrDate1 As String: myStrDate1 = "4:25:32" 
Dim myDate1 As Date: myDate1 = TimeValue(myStrDate1)
'--> myDate1 will be interpreted as 4.25 in the morning

请注意,如果您愿意,可以指定AM / PM

Dim myStrDate1 As String: myStrDate1 = "4:25:32 PM" 
Dim myDate1 As Date: myDate1 = TimeValue(myStrDate1)
'--> myDate1 will be interpreted as 4.25 in the afternoon

但是,如果您指定它,时间将始终被解释为AM(这意味着4:25:32将始终是凌晨4:25:32)。

在您的具体案例中:

If ((Time >= TimeValue(InitAmanha) And Time <= TimeValue(FimAmanha) And boolTarde = False)
   End If