我试图确定时间是否在12点至1点之间。这是我的if语句:
If InStr(Time,"12") AND InStr(Time,"AM") Then
' Do something
Else
' Do something else
End If
问题是即使两个条件都为真,该语句的计算结果仍为false。我知道这是因为我尝试过像这样的嵌套
If InStr(Time,"12") Then
If InStr(Time,"AM") Then
' Do something
...
那行得通。这也可以
If InStr(Time,"12")<>0 AND InStr(Time,"AM")<>0 Then
' Do something
...
但是,如果它作为嵌套if起作用,为什么不能在单个if语句中测试两个嵌套的if条件?
我将InStr函数调用替换为它们返回的值
If 1 AND 10 Then
' Do something
Else
' Do something else
End If
发生了同样的事情:if语句的评估结果为false,而执行了“其他操作”命令。但是,当我将第二个条件作为另一个if语句嵌套在第一个if语句中时,执行了“执行操作”命令。
为什么会这样,并且没有<> 0并且没有嵌套,有没有办法做到这一点?
答案 0 :(得分:1)
当您使用Time()
函数时,如果以这种方式返回类似10:12:12 AM
的结果,则Instr
将得到Ture
,因为Instr
默认使用{{1} }以vbbinarycompare
的二进制格式查找任何12
,并且存在sec和min 12,因此它将返回True。
只需尝试:
10:12:12 AM