Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 继续一项功能_Vba_Excel - Fatal编程技术网

Vba 继续一项功能

Vba 继续一项功能,vba,excel,Vba,Excel,我正在尝试编写一个VBA宏,它可以分析同一excel文件中的多张数据表。我现在已经设置好了,这样当它分析所有不同的表单时,当它发现错误时,它会完全停止程序。我已经知道如何让它进入下一页,但无法让程序继续运行。以下是我到目前为止的情况: `If Counter > 480 Then Worksheets(ActiveSheet.Index + 1).Select End End If` 我知道结束函数结束运行程序,但当我取出它时,它不工作,我

我正在尝试编写一个VBA宏,它可以分析同一excel文件中的多张数据表。我现在已经设置好了,这样当它分析所有不同的表单时,当它发现错误时,它会完全停止程序。我已经知道如何让它进入下一页,但无法让程序继续运行。以下是我到目前为止的情况:

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

我知道结束函数结束运行程序,但当我取出它时,它不工作,我如何才能让程序继续运行,因为它在出现错误时到达工作表?

将要结束的循环放在一个单独的函数或子函数中,然后当发现错误时,使用

Exit Function

如果是潜艇

使用您的代码的简单示例:

Sub Main
    OtherSub
    'Continue here
End Sub

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

选择工作表后,你想做什么?那么,你想让程序在工作表上发现错误后继续吗?@Katana24是的,这正是我想要它做的。请为我们提供更多的上下文和代码。如果希望代码在发生错误后继续运行,可以使用On error Resume Next或On error GoToWorld继续运行程序?这是宏的一小部分,我在整个vba宏的末尾有一个端点子节点。我刚刚更新了答案。如果您将要停止的代码部分放在一个单独的子/函数中,并从那里运行它,那么如果您使用退出函数,它将返回到它来自的前一个子/函数,并从那里继续,所以它看起来像这样<如果计数器>480,则代码>子错误,然后是工作表(ActiveSheet.Index+1)。如果退出子代码,则选择“结束”对于使用示例再次更新Syntax表示抱歉<代码>结束替换为退出子项。
Sub Main
    OtherSub
    'Continue here
End Sub

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