我在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"
中加载了值InitAmanha
和FimAmanha
,因此我写了一个新条件:
If ((Time >= InitAmanha And Time <= FimAmanha And boolTarde = False)
end if
但是,这并不能比较任何事情。是否有必要连接'PM#'
?
答案 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