2015-09-10 3 views
6

Я пытаюсь написать заявление, если так:Как проверить список значений в выражении IF?

if var [is any of 1,4,5,6,12] then do stuff 

Но я не знаю синтаксис для этого в VBA, кроме:

if var=1 or var=4 or var=5... 

, который кажется немного неуклюжим. Есть ли другой способ?

+0

использовать 'выберите case' заявление – psychicebola

+0

@psychicebola ли это утверждение также отрицание к нему? что-то вроде «еще»? Или эквивалент «не в» ...? –

+0

Я обновил свой код ответа – psychicebola

ответ

8

Вы можете использовать Select Case заявление:

select case var 
case 1,4,5,6,12 
    'do something 
case else 
    'alternative 
end select 
+0

Оператор ELSE не работает, если внутри оператора IF –

+0

уже не получил его. это должно было быть «case else» – psychicebola

1

Вы можете составить список номеров, а затем в течение петли, чтобы сравнить их:

dim newNumber as Integer 
dim compareList as new List Of(int) 

for count as integer = 0 to compareList.count - 1 
    if newNumber = compareList(nCount) 
     'Do Stuff 
    end if 
next 

Это простой способ сделать это, я хотел бы сделать, но может получить производительность интенсивной, если ваш списки действительно большие/вы хотите сделать много кода в цикле «if».

Смежные вопросы