Если заявление с несколькими строками - PullRequest
26 голосов
/ 29 ноября 2011

У меня есть if оператор с несколькими условиями. Я не вижу их всех в одном окне. Есть ли способ разделить их на разные строки, или они должны быть записаны все в одну строку?

Ответы [ 5 ]

48 голосов
/ 29 ноября 2011

Символ продолжения строки VBA - это подчеркивание _

if ( _
    (something) _
    or (somethingelse) _
) 
11 голосов
/ 29 ноября 2011

Вы можете использовать символ продолжения строки _

Все они одинаковы:

If Something Or  SomethingElse Or AnotherThing Then

If Something Or SomethingElse _
   Or AnotherThing Then

If Something Or _
   SomethingElse Or _
   AnotherThing Then
2 голосов
/ 13 февраля 2012

Как и выше, вы можете разбить длинный набор условий в одном операторе «IF», ​​используя подчеркивание.

Если условий слишком много, и мне сложно их читать, я использую BOOLEANSпредставлять условия.Кажется, что кода больше, но мне легче его читать.

Если у меня есть сценарий, в котором мне нужно сделать следующее:

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

Я мог бы сделать это:

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

... или я мог бы сделать это ...

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

Конечно, определены переменные типа BOOLEAN, и вместо имен, таких как blnCondition1, я буду использовать значимыеИмена.

Опять же, это просто мои предпочтения.

1 голос
/ 29 ноября 2011

разбить их с заниженной оценкой _?

Библиотека Microsoft

сверху ссылка

If ActiveSheet.ChartObjects(1).Chart.ChartTitle = _
      ActiveSheet.Range("a2").Value Then
   MsgBox "They are equal."
End If
0 голосов
/ 29 ноября 2011

Я уверен, что вы можете использовать подчеркивание _, чтобы разбить строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...