【问题标题】:If Statement With Multiple LinesIf 语句多行
【发布时间】:2012-01-08 09:11:35
【问题描述】:

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

【问题讨论】:

  • 我想我一定是唯一一个宁愿把所有内容都放在一行中的人,即使是很多页,我只是觉得很难按照被插入到单独的行中来

标签: vba if-statement line-breaks


【解决方案1】:

VBA 换行符是一个下划线_

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

【讨论】:

    【解决方案2】:

    可以使用续行符_

    这些都是一样的:

    If Something Or  SomethingElse Or AnotherThing Then
    
    If Something Or SomethingElse _
       Or AnotherThing Then
    
    If Something Or _
       SomethingElse Or _
       AnotherThing Then
    

    【讨论】:

      【解决方案3】:

      与上述类似,您可以使用下划线将长长的一组条件分解为一个“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 之类的名称。

      同样,这只是我的偏好。

      【讨论】:

        【解决方案4】:

        用低分 _ 打破它们?

        Microsoft Library

        以上链接

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

        【讨论】:

          【解决方案5】:

          我很确定您可以使用下划线 _ 来分隔行。

          【讨论】:

          • 试过了...但没有用。然而,其中一个答案成功了。
          • 根据记忆,您可以在哪里断行可能有点挑剔。
          • @Yokhen,那么请结束您的问题。它已经很忙了!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多