2015-09-10 27 views
6

Próbuję napisać oświadczenie, jeśli tak jak to:Jak sprawdzić listę wartości w instrukcji IF?

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

Ale ja nie znam składnię tego w VBA, inne niż:

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

który wydaje się nieco niezdarny. Czy jest inny sposób?

+0

użyć 'select case' oświadczenie – psychicebola

+0

@psychicebola ma to stwierdzenie mają także negację do niego? coś w rodzaju "innego"? Lub odpowiednik "nie w" ...? –

+0

zaktualizowałem mój kod odpowiedzi – psychicebola

Odpowiedz

8

Można użyć Select Case oświadczenie:

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

Instrukcja ELSE nie działa, chyba że w instrukcji IF –

+0

już ją otrzymałem. musiało to dotyczyć "przypadku innego" – psychicebola

1

Można zrobić listę numerów, a następnie w pętli for, aby porównać je:

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 

Jest to prosty sposób na osiągnięcie tego lubię robić, ale może dostać wydajność intensywne jeśli listy są naprawdę duże/chcesz zrobić dużo kodu w pętli "Jeśli".