【发布时间】:2016-05-09 22:16:47
【问题描述】:
我正在尝试评估用户帐户是否等于某个字符串,它不会继续。例如,如果用户帐户是 AMTEST 或 PMTEST,则它不执行 if 语句中的代码。使用下面的代码,我收到“输入字符串格式不正确”的错误。
我的语法有问题吗?
If UserAccount <> "AMTEST" Or "PMTEST" Or "TESTUSER" Then
' do something
End If
【问题讨论】:
我正在尝试评估用户帐户是否等于某个字符串,它不会继续。例如,如果用户帐户是 AMTEST 或 PMTEST,则它不执行 if 语句中的代码。使用下面的代码,我收到“输入字符串格式不正确”的错误。
我的语法有问题吗?
If UserAccount <> "AMTEST" Or "PMTEST" Or "TESTUSER" Then
' do something
End If
【问题讨论】:
你必须使用这个语法:
If UserAccount <> "AMTEST" AndAlso UserAccount <> "PMTEST" AndAlso UserAccount <> "TESTUSER" Then
End If
这种方法更易于阅读和维护:
Dim testAccs = { "AMTEST", "PMTEST", "TESTUSER" }
If Not testAccs.Contains( UserAccount ) Then
End If
【讨论】:
Amtest 而不是 AMTEST?
您必须评估语句的每个部分。 if 你写的内容基本上是“如果 UserAccount 的值不是 'AMTEST' 或者如果字符串 'PMTEST' = true 或者如果 'TESTUSER' = true”
正确的做法是:
If UserAccount <> "AMTEST" Or UserAccount <> "PMTEST" Or UserAccount <> "TESTUSER" Then
Excecute code
END if
另一种经常使用的不等于的写法是 != 而不是