2014-07-17 11 views
9

Sono abbastanza nuovo in VBA e non riesco a trovare un modo semplice per verificare se una qualsiasi delle variabili specificate è uguale a un valore specificato. Il sotto sembra funzionare, ma c'è un modo più semplice per farlo?VBA Se <qualcuno di questi> = <value>?

If variable1 = 1 Or variable2 = 1 Or variable3 = 1 Or variable4 = 1 Or variable5 = 1 Then End If 

Ho anche provato quanto segue, senza fortuna.

If (variable1 Or variable2 Or variable3 Or variable4 Or variable5) = 1 Then End If 
+0

Per i singoli elementi, a meno che non ci sono specifiche proprietà delle variabili (dove trucchi bit-giocherellando possono funzionare), si sono fuori di fortuna. Per gli array, puoi provare a eseguire un ciclo ... Whoops, lo riprendo, segui l'esempio di Siddharth in basso. – hnk

risposta

14

è possibile utilizzare Select caso :)

Sub Sample() 
    Dim variable1, variable2, variable3, variable4, variable5 

    variable1 = 1: variable2 = 1: variable3 = 1: variable4 = 1: variable5 = 1 

    Select Case 1 
     Case variable1, variable2, variable3, variable4, variable5 
      MsgBox "One of them is equal to 1" 
     Case Else 
      MsgBox "none of then is equal to 1" 
    End Select 
End Sub 
+1

Questo è un +1 serio, non ho mai provato a invertire il metodo di selezione del caso! – hnk

+0

Non l'ho mai visto prima. Spero di ricordare questo trucco quando salverà la giornata. – tbur

+0

Grazie mille, Siddharth! Grazie per aver dedicato del tempo a scrivere questa risposta! –