代码之家  ›  专栏  ›  技术社区  ›  Gass

在VBA中,这两个IF语句是否可以只在一个IF语句中执行?

vba
  •  0
  • Gass  · 技术社区  · 4 年前

    是否可以只在一个IF语句中执行以下两个IF语句?

    If WorksheetFunction.CountIf(Sheets("Config") _
    .Range("B3:B8"), .Cells(r - a, 3)) = 1 Or .Cells(r, 3) = "" Then
                
         If .Cells(r, 3).Interior.ColorIndex <> -4142 And _
            .Cells(r, 3).Interior.ColorIndex <> 2 Then
                
                   'CONTENT
                    
          Else: desired_activity = False
          End If
    
    End If
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   Mathieu Guindon    4 年前

    And 运算符计算为 False

    这意味着VBA代码完全有理由 把条件表达式组合成简洁的一行。

    Dim conditionalCount As Long
    conditionalCount = WorksheetFunction.CountIf(Sheets("Config").Range("B3:B8"), .Cells(r - a, 3))
    
    If (conditionalCount = 1 Or .Cells(r, 3) = "") And ( _
         .Cells(r, 3).Interior.ColorIndex <> -4142 And _
         .Cells(r, 3).Interior.ColorIndex <> 2) Then
    
        '...
                
    Else
    
        '...
    
    End If