2013-04-01 51 views
0

VBA初学者在这里。我想在VBA 2003中做一个非常简单的if/then语句,但我遇到了这个问题。我的代码如下:VBA If Then或Statements

Dim var as Integer 
If var = 1 or 2 Then 
    'Do stuff 
Else 
    MsgBox ("error") 

我一直在用or语句解决问题。如果我将其更改为var = 1,则代码运行顺畅;如果我把它改写为

If var = 1 or var = 2 

然后它工作正常。但正如我想扩大这一点,能够以更有凝聚力的方式写出这一点会很好。我错过了什么? :(

+0

如果要使用您需要再次使用该变量的“或”条件,即如果VAR = 1个或VAR = 2然后 –

+0

你已经有了几个很好的答案,但要解释发生了什么事情:两个整数的或者给你两个值的按位或:1是二进制的0001,2是0010,或者它们产生0011或3,所以Var如果Var = 3,则= 1或2将为真 –

回答

2

你需要把它写为:

If var = 1 or var = 2 

因为or连接两个条件,而不是两个值形成的相同条件的一部分

2

如果你想更干净的代码,你可以使用一个case表达式代替:

select case var 
    case 1, 2 
     'Do stuff 
    case else 
     MsgBox ("error") 
end select