“阻止如果没有结束,如果”错误VBA

时间:2014-07-29 14:31:01

标签: excel vba

我尝试了解其他答案,但似乎没有什么能帮助我。正如标题所述,如果没有结束,我会得到一个" Block"错误。我试图输入一个条件语句,如果它满足则结束sub。更具体地说,我是格式化数据,一次只能格式化一个作业。如果它确定电子表格中有多个作业,我想自动结束该子。这是我到目前为止所做的事情。

Sub SUBNAMEHERE

(Lots of other code)

JobNo = (code that figures out how many jobs there are)
If JobNo > 1 Then
    MsgBox (warning message)
    End Sub
End If

(The rest of the code)

如果有人能帮助我,我们将不胜感激。

2 个答案:

答案 0 :(得分:5)

尝试Exit Sub而不是End Sub

当你说End Sub时,你告诉VB你已经完成了例程的定义。因此,如果您之前没有结束If,那么它将被视为不完整。

当然,即使你 在此之前结束了If,你几乎肯定会在函数之外获得有关代码的错误。 (我不太了解VBA ......但这就是大多数VB的工作原理。)

答案 1 :(得分:2)

Sub SUBNAMEHERE

(Lots of other code)

JobNo = (code that figures out how many jobs there are)
If JobNo > 1 Then
    MsgBox (warning message)
    -------> End Sub  <------ 
End If

(The rest of the code)

End Sub应该位于Sub

的底部

正如你的评论员指出的那样,你正在寻找Exit Sub