2013-04-01 73 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