web-dev-qa-db-fra.com

Si déclaration avec plusieurs lignes

J'ai une déclaration if avec plusieurs conditions. Je ne peux pas les voir tous dans une seule fenêtre. Existe-t-il un moyen de les séparer sur des lignes différentes ou doivent-ils être écrits en une seule ligne?

26
Yokhen

Le caractère de continuation de ligne VBA est un trait de soulignement _

if ( _
    (something) _
    or (somethingelse) _
) 
48
Cylindric

Vous pouvez utiliser le caractère de continuation de ligne _

Ce sont tous les mêmes:

If Something Or  SomethingElse Or AnotherThing Then

If Something Or SomethingElse _
   Or AnotherThing Then

If Something Or _
   SomethingElse Or _
   AnotherThing Then
11
Ken White

Comme ci-dessus, vous pouvez diviser le long ensemble de conditions dans une instruction "IF" en utilisant un trait de soulignement.

S'il y a trop de conditions et que je trouve difficile de lire, j'utilise BOOLEANS pour les représenter. Il semble qu'il y ait plus de code, mais je le trouve plus facile à lire.

Si j'ai un scénario où je dois faire ce qui suit:

IF (X = something1) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) THEN
END IF

Je pourrais faire ça:

IF _
    (X = something1) _
    OR (X = something2) _
    OR (X = something3) _
    OR (X = something4) _
    OR (X = something5) _
    OR (X = something6) _
    OR (X = something7) _
    OR (X = something8) _
THEN
END IF

... ou je pourrais faire ça ...

blnCondition1 = (X = something1)
blnCondition2 = (X = something2)
blnCondition3 = (X = something3)
blnCondition4 = (X = something4)
blnCondition5 = (X = something5)
blnCondition6 = (X = something6)
blnCondition7 = (X = something7)
blnCondition8 = (X = something8)

IF blnCondition1 OR blnCondition2 OR blnCondition3 OR blnCondition4 OR blnCondition5 OR blnCondition6 OR blnCondition7 OR blnCondition8 THEN
END IF

Bien sûr, les exemples de variables BOOLEAN sont définis et, au lieu de noms comme blnCondition1, je vais utiliser des noms significatifs.

Encore une fois, c'est juste une préférence que j'ai.

2
Jason TEPOORTEN

casser les avec un score inférieur _?

Bibliothèque Microsoft

depuis le lien ci-dessus 

If ActiveSheet.ChartObjects(1).Chart.ChartTitle = _
      ActiveSheet.Range("a2").Value Then
   MsgBox "They are equal."
End If
1
DevilWAH

je suis sûr que vous pouvez utiliser un trait de soulignement _ pour rompre les lignes.

0
smitec