限制ElseIf条件?

时间:2017-02-14 18:00:30

标签: excel vba excel-vba if-statement

所以我有一些VBA代码,旨在根据单元格中的值来完成一些事情。读取单元格中的值,然后相应地运行代码。这没有问题。

If Target.Value = "something" Then
End If
ElseIf Target.Value = "something2" Then
End If
ElseIf Target.Value = "something3" Then
End If
ElseIf Target.Value = "something4" Then
End If

这完全有效,但是如果我添加一个额外的ElseIf条件,我会得到编译器错误" Else没有If"。在第五个条件下将ElseIf更改为Else并不能解决问题。我的问题是,我可以运行的ElseIf条件数量是否有限制?我确实只需要第五个完全按照我要做的事情完成。我很肯定条件中的代码没有错误。

2 个答案:

答案 0 :(得分:10)

结束如果只到最后:

If Target.Value = "something" Then
    'Do something
ElseIf Target.Value = "something2" Then
    'Do something
ElseIf Target.Value = "something3" Then
    'Do something
ElseIf Target.Value = "something4" Then
    'Do something
End If

答案 1 :(得分:9)

当然,您应该“升级”多个ElseIf,然后选择Select Case

这将使您在将来更轻松地实施更多场景。

Select Case Target.Value
    Case "something"
        ' code 1 here

    Case "something2"
        ' code 2 here

    Case "something3"
        ' code 3 here

    Case "something4"
        ' code 4 here

    Case "something5", "something6" ' <-- replaces using another If with And
        ' code 5 here

    ' Case ....

End Select