如果语句 VBA 访问 2010



当使用

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第一个条件为真,则执行第一个块。
  • Elseif第二个条件为真,则执行第二个块。

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

最新更新