Excel VBA If Then或语句

Excel VBA If Then或语句,excel,vba,macos,Excel,Vba,Macos,这里是VBA初学者。我试图在VBA2003中做一个非常简单的if/then语句,但我遇到了这个问题。我的密码是: Dim var as Integer If var = 1 or 2 Then 'Do stuff Else MsgBox ("error") 我一直在用or语句来处理这个问题。如果我将其更改为var=1,代码将顺利运行;如果我把它改写成 If var = 1 or var = 2 那么它工作得很好。但当我想扩展这一点时,能够以一种更连贯的方式来写这篇文章将是非常

这里是VBA初学者。我试图在VBA2003中做一个非常简单的if/then语句,但我遇到了这个问题。我的密码是:

Dim var as Integer
If var = 1 or 2 Then
    'Do stuff
Else
    MsgBox ("error")
我一直在用or语句来处理这个问题。如果我将其更改为var=1,代码将顺利运行;如果我把它改写成

If var = 1 or var = 2

那么它工作得很好。但当我想扩展这一点时,能够以一种更连贯的方式来写这篇文章将是非常棒的。我错过了什么(

您需要将其写成:

If var = 1 or var = 2

因为
连接两个条件,而不是构成同一条件一部分的两个值。

您需要将其写成:

If var = 1 or var = 2

因为
连接两个条件,而不是构成同一条件一部分的两个值。

如果您想要更干净的代码,可以使用
大小写表达式:

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

如果需要更干净的代码,可以使用
大小写
表达式:

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

如果你想使用“或”条件,你需要再次使用变量。也就是说,如果var=1或var=2,你已经得到了几个很好的答案,但是为了解释下面发生的事情:两个整数的“或”给出了两个值的“或”的位:1是二进制的0001,2是0010,对它们进行or运算会得到0011或3,所以如果Var=3如果你想使用“或”条件,你需要再次使用变量。也就是说,如果Var=1或Var=2,那么你已经得到了几个好的答案,但是为了解释下面发生的事情:两个整数的or给出了两个值的按位or:1是二进制的0001,2是0010,对它们进行O运算得到0011或3,所以Var=1或2将是t如果Var=3,则为rue