我尝试了解其他答案,但似乎没有什么能帮助我。正如标题所述,如果没有结束,我会得到一个" 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)
如果有人能帮助我,我们将不胜感激。
答案 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
。