能否在Excel VBA中列出条件语句的可能值

能否在Excel VBA中列出条件语句的可能值,vba,excel,Vba,Excel,如果这是个愚蠢的问题,我很抱歉。我想要一个If语句,说明变量a是否是一组整数的元素,然后。。。如果我写下: 如果a=1,6,12,19,则 还是我要写 如果a=1或a=6或a=12或a=19,则否,如果a=1,6,12,19,则不能将其写为,但您可以使用一些替代方法,这些方法将在中介绍。这是我在大多数情况下推荐的 select case userID case 1,2,3,4,5,6 ' do something end select InStr函数可以将其作为包含分隔选

如果这是个愚蠢的问题,我很抱歉。我想要一个If语句,说明变量a是否是一组整数的元素,然后。。。如果我写下:

如果a=1,6,12,19,则

还是我要写


如果a=1或a=6或a=12或a=19,则

否,如果a=1,6,12,19,则不能将其写为
,但您可以使用一些替代方法,这些方法将在中介绍。这是我在大多数情况下推荐的

select case userID
    case 1,2,3,4,5,6
       ' do something
end select

InStr
函数可以将其作为包含分隔选项的字符串中的分隔子字符串处理

if cbool(instr(1, "x1x2x3x4x5x6x", format(a, "x0x"))) then
    'a is a number between 1 and 6
    debug.Print a & " is in 1,2,3,4,5,6"
end if

您可以使用
Application.Match()
方法

if Not IsError(Application.Match(a,array(1,6,12,19),0) Then
    your code
End If

你试过了吗?你可以用案例陈述。例如,
公共功能测试(a)选择案例案例案例1、2、3、4、5、6'做点什么结束选择结束功能
可能重复的如果有任何超过2种情况,我总是选择
案例
。这是一件美丽的事情!不要忘记
case-else
。这不是必需的,但在
结束选择之前将其保留在那里是一个好习惯,这样您就不会忘记选项在那里:)