如果多行语句

时间:2011-11-28 23:22:08

标签: vba if-statement line-breaks

我有一个包含多个条件的if语句。我无法在一个窗口视图中看到它们。有没有办法在不同的行上分隔它们,还是必须将它们全部写在一行?

5 个答案:

答案 0 :(得分:48)

VBA续行字符是下划线_

if ( _
    (something) _
    or (somethingelse) _
) 

答案 1 :(得分:11)

您可以使用续行符_

这些都是一样的:

If Something Or  SomethingElse Or AnotherThing Then

If Something Or SomethingElse _
   Or AnotherThing Then

If Something Or _
   SomethingElse Or _
   AnotherThing Then

答案 2 :(得分:2)

如上所述,您可以在一个" 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这样的名称,我会使用有意义的名称。

同样,这只是我的偏好。

答案 3 :(得分:1)

以低于分数_?

打破他们

Microsoft Library

来自上面的链接

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

答案 4 :(得分:0)

我非常确定你可以使用下划线_来分隔线。