当使用
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"(两个不同的条件语句而不是一个具有两个条件的语句),它起作用了。
是的,你是对的,它只会执行第一个块
来自 IF-THEN-ELSE STATEMENT (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是条件发生后执行的代码 发现是真的。
If...ElseIf...EndIf
完全按照英语的建议去做:
-
If
第一个条件为真,则执行第一个块。 -
Else
,if
第二个条件为真,则执行第二个块。
在您的情况下,您需要两个单独的 if 语句;无论其他条件的结果如何,它们都将被独立计算。