3

当使用一个

If Then
'Do Something
Else If
'Do Something
End If 

如果第一个和第二个条件为真,它会只执行第一个还是两者都执行?

出于某种原因,当我有此代码时:

Dim Report As String

If (DateRange_Pro_TotalCount > 0) Then

        Dim DateRange_Pro_ReportStr As String

        DateRange_Pro_ReportStr = "Total Referrals: " & DateRange_Pro_TotalCount & vbNewLine _

        Report = Report & DateRange_Pro_ReportStr

    ElseIf (DateRange_InPro_TotalCount > 0) Then

        Dim DateRange_InPro_ReportStr As String

        DateRange_InPro_ReportStr = "Total Referrals: " & DateRange_InPro_TotalCount & vbNewLine _

        Report = Report & DateRange_InPro_ReportStr

End If

'next statement prints report variable to textBox

即使两个条件都为真,该语句也只执行第一个条件。我将“Else If”更改为“End If”和“If”(两个不同的条件语句,而不是一个具有两个条件的语句)并且它起作用了。

4

2 回答 2

2

是的,你是对的,它只会执行第一个块

来自IF-THEN-ELSE 语句 (VBA)

If condition_1 Then
    result_1

 ElseIf condition_2 Then
   result_2
 ...
 ElseIf condition_n Then
    result_n

 Else
   result_else

 End If

condition_1 到 condition_n 按列出的顺序进行评估。一旦发现条件为真,IF-THEN-ELSE 语句将执行相应的代码并且不再评估条件。

result_1 到 result_n 是在发现条件为真时执行的代码。

于 2012-10-01T04:47:36.300 回答
1

If...ElseIf...EndIf完全按照它在英语中的建议:

  • If第一个条件为真,执行第一个块。
  • Elseif第二个条件为真,执行第二个块。

在您的情况下,您需要两个单独的 if 语句;无论其他条件的结果如何,它们都将被独立评估。

于 2012-10-01T04:48:20.410 回答