2015-09-10 10 views
6

sto cercando di scrivere un'istruzione IF in questo modo:Come verificare un elenco di valori in un'istruzione IF?

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

Ma non so la sintassi per questo in VBA, diverso:

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

che sembra un po 'goffo. C'è un modo diverso?

+0

utilizzare una select case' dichiarazione – psychicebola

+0

@psychicebola 'questa dichiarazione ha anche una negazione ad esso? qualcosa come "altro"? O l'equivalente di "non in" ...? –

+0

ho aggiornato il mio codice di risposta – psychicebola

risposta

8

È possibile utilizzare un Select Case dichiarazione:

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

L'istruzione ELSE non funziona a meno che non sia già presente in una dichiarazione IF –

+0

. ha dovuto bo 'case else' – psychicebola

1

Si potrebbe fare un elenco di numeri, e poi in un ciclo for per confrontare questi:

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 

questo è un modo semplice di fare quello che mi piace fare, ma possono ottenere le prestazioni ad alta intensità se la vostra le liste sono veramente grandi/vuoi fare molto codice nel ciclo "if".

Problemi correlati