我找不到任何让我有理由认为这不起作用的东西。无论如何,这总是评估if语句中的代码。
我尝试将所有内容放入()我尝试用()分隔每个语句。无论它总是在if语句中运行代码。我错过了什么?
' Update by Adam W. Schneider 11/10/2017
If strDrawingSize <> "T" Or strDrawingSize <> "Y" Or strDrawingSize <> "Z" Or strDrawingSize <> "M" Or strDrawingSize <> "P" Or strDrawingSize <> "S" Or strDrawingSize <> "N" Or strDrawingSize <> "W" Or strDrawingSize <> "X" Or strDrawingSize <> "R" Or strDrawingSize <> "O" Then
' Update by Adam Schneider 08/24/2017
cboRefDrawingSize.Text = cboDrawingSize.Text
End If
我知道这是一个丑陋的if语句,我试图在案例陈述中使用否定逻辑,但这也不起作用。
答案 0 :(得分:2)
据我了解,您想检查strDrawingSize
是否不是任何一个所需的字母。如果是这种情况,那么对所需的字母使用IndexOf方法进行比较,如果它是-1:
If "TYZMPSNWXRO".IndexOf(strDrawingSize) = -1 Then
cboRefDrawingSize.Text = cboDrawingSize.Text
End If
小提琴:Live Demo
这是它的工作原理:本质上,String是Char值的集合,IndexOf方法返回集合内给定值的索引,如果找不到值,则返回-1。
答案 1 :(得分:1)
正如其他人所说,您的代码将始终执行,因为您使用的是OR而不是AND。
更简洁的方法是使用Select Case
:
Select Case strDrawingSize
Case "T", "Y", "Z", "M", "P", "S", "N", "W", "X", "R", "O"
Case Else
' Update by Adam Schneider 08/24/2017
cboRefDrawingSize.Text = cboDrawingSize.Text
End Select