Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Excel VBA:尽管事先有Exit Sub命令,但仍在执行错误消息代码_Excel_Vba_Error Handling_Messagebox - Fatal编程技术网

Excel VBA:尽管事先有Exit Sub命令,但仍在执行错误消息代码

Excel VBA:尽管事先有Exit Sub命令,但仍在执行错误消息代码,excel,vba,error-handling,messagebox,Excel,Vba,Error Handling,Messagebox,我有一些创建工作表的代码,如果工作簿中已经存在同名工作表,则会删除该工作表。如果存在重复,则代码应跳转到Errmsg以创建警报,并执行此操作。但是,如果工作表不是重复的,尽管前面有一个Exit子命令,但它仍然会运行代码的其余部分和最后的错误消息,因此会删除刚刚创建的工作表 任何帮助都将不胜感激,谢谢 On Error GoTo Errmsg 'Some code Exit Sub Errmsg: MsgBox "Worksheet with that name already ex

我有一些创建工作表的代码,如果工作簿中已经存在同名工作表,则会删除该工作表。如果存在重复,则代码应跳转到
Errmsg
以创建警报,并执行此操作。但是,如果工作表不是重复的,尽管前面有一个Exit子命令,但它仍然会运行代码的其余部分和最后的错误消息,因此会删除刚刚创建的工作表

任何帮助都将不胜感激,谢谢

On Error GoTo Errmsg

'Some code

Exit Sub

Errmsg:
    MsgBox "Worksheet with that name already exists, please edit the test iteration"

    Application.DisplayAlerts = False
    With ActiveWorkbook
        .Worksheets(.Worksheets.Count).Delete
    End With
    Application.DisplayAlerts = True

End Sub


这可能是其他代码的问题。为了完整起见,你能把它包括进来吗?你的代码可能在别的地方坏了。注释掉“
On Error GoTo Errmsg”
行,查看它在何处精确中断。或者,您可以将
Err
对象的属性添加到msgbox的内容中,例如
Err.Description
。这会让您了解错误的类型。现在,您的代码可能遇到的所有可能的错误类型都将显示一种错误类型的消息。请仅在要捕获错误的语句周围使用
On error Goto Errmsg
,并在语句后使用
On error Goto 0
@TimStack重置它谢谢,我是个白痴!在退出子代码和错误消息之前的代码中出现了一个小错误,这就是为什么我认为它可以很好地运行代码的原因。