2008-12-05 16 views
2

J'ai un test dans Excel VBA:booléenne Expression - Ordre des opérations

 
If (test1) And (test2) And (test3) Then 
    'do something 
End If 

En C, Java, etc. test1 serait courir d'abord, puis test2, puis test3. Critiquement, si test1 est faux, le test entier est faux, donc les tests restants ne s'exécutent pas.

Est-ce que cela se produit dans ce cas avec VBA? Si oui, dans quel ordre les tests sont-ils exécutés?

Répondre

8

Dans tous les VB antérieurs à .NET, il n'existe pas de court-circuit. Toutes les expressions seront évaluées même si elles ne sont pas requises. Si vous voulez un court-curcuit, faites des IFs imbriqués.