Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
Sub test()
If Test_2() = "exit now" Then Exit Sub MsgBox ("fail") End Sub Function Test_2() As String 'the code I need has to go here! Test_2 = "exit now" End Function "tigoda" wrote in message ... I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
Exit Sub should work.
Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() If myCriteria = True Then Exit Sub End If 'the code I need has to go here! End Sub I threw in an If statement to show that you can set the criteria for when you want to exit the Test_2 sub. The Exit Sub in Test_2 will automatically revert back to the calling sub Test_1. It will begin executing on the line following the call for Test_2, or in this case, your message box. "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
that works, but only if the exit sub is in the second sub, not in a 3rd or
4th, i want this to be attached to some error handling, so calling the sub that has the 'bomb out of everytihng' code could happen any time, there will be a sub to deal with errors and to print meaning fill text boxes to help the user with the error, this error sub will be either 2 or 3 subs in and will be called from the on err bit, "Zone" wrote: Sub test() If Test_2() = "exit now" Then Exit Sub MsgBox ("fail") End Sub Function Test_2() As String 'the code I need has to go here! Test_2 = "exit now" End Function "tigoda" wrote in message ... I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
the problem being i dont want it to display the msgbox("fail") thats a test
to see if the macro ends totaly without going back to the calling sub "JLGWhiz" wrote: Exit Sub should work. Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() If myCriteria = True Then Exit Sub End If 'the code I need has to go here! End Sub I threw in an If statement to show that you can set the criteria for when you want to exit the Test_2 sub. The Exit Sub in Test_2 will automatically revert back to the calling sub Test_1. It will begin executing on the line following the call for Test_2, or in this case, your message box. "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
Sorry, I misunderstood your posting. You can use the End command. That
stops everything, but it wipes out all your variables. You can also use Application.Quit, but that shuts down that instance of Excel. The only other suggestion I have is to incorporate the procedure in Test_2 into Test_1 so that you only have one sub and then use the Exit Sub command. Of course, that may not be practical because of size. "tigoda" wrote: the problem being i dont want it to display the msgbox("fail") thats a test to see if the macro ends totaly without going back to the calling sub "JLGWhiz" wrote: Exit Sub should work. Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() If myCriteria = True Then Exit Sub End If 'the code I need has to go here! End Sub I threw in an If statement to show that you can set the criteria for when you want to exit the Test_2 sub. The Exit Sub in Test_2 will automatically revert back to the calling sub Test_1. It will begin executing on the line following the call for Test_2, or in this case, your message box. "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
The END command by itself halts code execution. However, it doesn't do it
nicely. (see help). To do it nicely, you will need to put your error handling only in the topmost routine and vba will seek the first error handler going back up the call chain ending up in the topmost sub where you can exit. -- Regards, Tom Ogilvy "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
Maybe this will help. Notice that the error ripples back to the first
routine. James Sub Sub1() On Error GoTo ErrHandler Sub2 MsgBox "No error found" Exit Sub ErrHandler: MsgBox "Error " & Err & Chr(13) & Error End Sub Sub Sub2() Sub3 End Sub Sub Sub3() Error 15 End Sub "tigoda" wrote in message ... that works, but only if the exit sub is in the second sub, not in a 3rd or 4th, i want this to be attached to some error handling, so calling the sub that has the 'bomb out of everytihng' code could happen any time, there will be a sub to deal with errors and to print meaning fill text boxes to help the user with the error, this error sub will be either 2 or 3 subs in and will be called from the on err bit, "Zone" wrote: Sub test() If Test_2() = "exit now" Then Exit Sub MsgBox ("fail") End Sub Function Test_2() As String 'the code I need has to go here! Test_2 = "exit now" End Function "tigoda" wrote in message ... I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
thanks, the end works, i dont want any of the variables saved, if the error
occurs its because there is rubbish in the input file, so i want the whole thing wiped "JLGWhiz" wrote: Sorry, I misunderstood your posting. You can use the End command. That stops everything, but it wipes out all your variables. You can also use Application.Quit, but that shuts down that instance of Excel. The only other suggestion I have is to incorporate the procedure in Test_2 into Test_1 so that you only have one sub and then use the Exit Sub command. Of course, that may not be practical because of size. "tigoda" wrote: the problem being i dont want it to display the msgbox("fail") thats a test to see if the macro ends totaly without going back to the calling sub "JLGWhiz" wrote: Exit Sub should work. Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() If myCriteria = True Then Exit Sub End If 'the code I need has to go here! End Sub I threw in an If statement to show that you can set the criteria for when you want to exit the Test_2 sub. The Exit Sub in Test_2 will automatically revert back to the calling sub Test_1. It will begin executing on the line following the call for Test_2, or in this case, your message box. "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
#10
Posted to microsoft.public.excel.programming
|
|||
|
|||
exiting the whole macro
same to you tom, thanks
"Tom Ogilvy" wrote: The END command by itself halts code execution. However, it doesn't do it nicely. (see help). To do it nicely, you will need to put your error handling only in the topmost routine and vba will seek the first error handler going back up the call chain ending up in the topmost sub where you can exit. -- Regards, Tom Ogilvy "tigoda" wrote: I have the following example: Sub test() call Test_2 MsgBox ("fail") End Sub Sub Test_2() 'the code I need has to go here! End Sub in the second sub I need a command/section of code that will exit the whole macro, currently end sub and exit sub just exit the second sub and continue running the first sub (displaying the msg box "fail" as a test) there has to be a way to safety bomb out of the macro without resorting to ending and closing the whole sheet, can anyone help? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Macro not exiting correctly | Excel Programming | |||
Help with Exiting Sub if Value is Not Found | Excel Programming | |||
Exiting a Textbox | Excel Programming | |||
Macro suffers from premature exiting | Excel Programming | |||
Exiting a VBA Macro by user intervention | Excel Programming |