在我的情况下,使用OR无效,我必须使用AND,而且我不确定为什么。
Sub blah()
If LCase(Environ("username")) <> "me" Or LCase(Environ("username")) <> "some other user" Then '''DOESN'T WORK
Stop
ElseIf LCase(Environ("username")) <> "me" And LCase(Environ("username")) <> "some other user" Then '''WORKS
Stop
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
您的示例很难理解,但是您可能只是对运营商的性质感到困惑。
想想真相表;一个Or运算的结果是,True如果至少一个操作数是True:
True Or True => True
True Or False => True
False Or True => True
False Or False => False
Run Code Online (Sandbox Code Playgroud)
类似地,结果And操作是True如果两个操作数都是True:
True And True => True
True And False => False
False And True => False
False And False => False
Run Code Online (Sandbox Code Playgroud)
如果有帮助,你可以想像Or的+(加)和And作为*(乘)操作,有False是0和True是“不为零”:
1 Or 1 => 1 + 1 => True
1 Or 0 => 1 + 0 => True
0 Or 1 => 0 + 1 => True
0 Or 0 => 0 + 0 => False
1 And 1 => 1 * 1 => True
1 And 0 => 1 * 0 => False
0 And 1 => 0 * 1 => False
0 And 0 => 0 * 0 => False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |