2013-08-07 45 views
0

我想写一个VBA宏,它在同一个excel文件中分析多张数据。我现在设置了它,以便在分析所有不同的工作表时,当它发现错误时,它会完全停止程序。我已经想出了如何让它去到下一张表,但无法让程序继续运行。以下是我迄今为止:继续一个功能

`If Counter > 480 Then 
     Worksheets(ActiveSheet.Index + 1).Select 
     End 
    End If` 

我知道结局函数结束正在运行的程序,但我把它拿出来的时候它不工作,我怎样才能让程序继续运行,因为这是它到达之前有错误的表单?

+1

什么ü要选择表后怎么办? –

+1

因此您希望程序在工作表中发现错误后继续执行? – Katana24

+0

@ Katana24是的,这正是我想要它做的 – AM847

回答

0

将要在一个单独的函数或子结束循环,那么当发现错误,使用

Exit Function 

Exit Sub 

如果它是一个子。使用你的代码

简单的例子:

Sub Main 
    OtherSub 
    'Continue here 
End Sub 

Sub OtherSub 
    If Counter > 480 Then 
     Worksheets(ActiveSheet.Index + 1).Select 
     Exit Sub 
    End If 
End Sub 
+0

是否允许程序继续运行?这是宏的一小部分,我在整个vba宏的末尾有一个end sub – AM847

+0

我刚刚更新了我的答案。如果你把你想停止的部分代码放在一个单独的子函数中并从那里运行,那么如果你使用退出函数,它会返回到前一个子函数并从那里继续。 – mattboy

+0

所以它会是这样吗? '子错误 如果计数器> 480然后 工作表(ActiveSheet.Index + 1)。选择 结束 结束如果 退出Sub' 很抱歉的语法 – AM847