ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   On Error GoTo ... But wait! (https://www.excelbanter.com/excel-programming/360069-error-goto-but-wait.html)

monir

On Error GoTo ... But wait!
 
Hello;
Here's a simple illustration:
-------------------------------------------------------
Sub Test_1()
On Error GoTo myErrorHandler
For MyIndex = 1 To 40
....myCode1
Next myIndex
....myCode2
Exit Sub

myErrorHandler:
MsgBox "The non-linear multi-variant algorithm failed ..."
End Sub
--------------------------------------------------------
I would like to clear (or suppress) the Err object, if any run-time error
occurs within the For loops, until the For loops are complete.
If there's a run-time error for the current value of myIndex, then move to
the next value of myIndex.
If there's at least one error-free loop at the end of the For ... Next, then
ignor any run-time error(s) which might have been encountered and resume
next.
If there is no viable solution (i.e.; no error-free loop at the end of the
For ... Next), then GoTo myErrorHandler.

Could someone please show how-to accomplish that?
You might prefer to put the procedure in a separate routine to be called
from within the For ... Next.

Thank you kindly.

Tom Ogilvy

On Error GoTo ... But wait!
 
Sub Test_1()
On Error Resume Next
cnt = 0
For myIndex = 1 To 40

' your code

' just before the next
If Err.Number < 0 Then
cnt = cnt + 1
Err.Clear
End If
Next myIndex
If cnt = 40 Then GoTo myErrorHandler
' ....myCode2
Exit Sub

myErrorHandler:
MsgBox "The non-linear multi-variant algorithm failed ..."
End Sub

--
Regards,
Tom Ogilvy


"monir" wrote:

Hello;
Here's a simple illustration:
-------------------------------------------------------
Sub Test_1()
On Error GoTo myErrorHandler
For MyIndex = 1 To 40
....myCode1
Next myIndex
....myCode2
Exit Sub

myErrorHandler:
MsgBox "The non-linear multi-variant algorithm failed ..."
End Sub
--------------------------------------------------------
I would like to clear (or suppress) the Err object, if any run-time error
occurs within the For loops, until the For loops are complete.
If there's a run-time error for the current value of myIndex, then move to
the next value of myIndex.
If there's at least one error-free loop at the end of the For ... Next, then
ignor any run-time error(s) which might have been encountered and resume
next.
If there is no viable solution (i.e.; no error-free loop at the end of the
For ... Next), then GoTo myErrorHandler.

Could someone please show how-to accomplish that?
You might prefer to put the procedure in a separate routine to be called
from within the For ... Next.

Thank you kindly.


monir

On Error GoTo ... But wait!
 
Tom;
Absolutely perfect!
Thank you very much fpr your help.


"Tom Ogilvy" wrote:

Sub Test_1()
On Error Resume Next
cnt = 0
For myIndex = 1 To 40

' your code

' just before the next
If Err.Number < 0 Then
cnt = cnt + 1
Err.Clear
End If
Next myIndex
If cnt = 40 Then GoTo myErrorHandler
' ....myCode2
Exit Sub

myErrorHandler:
MsgBox "The non-linear multi-variant algorithm failed ..."
End Sub

--
Regards,
Tom Ogilvy


"monir" wrote:

Hello;
Here's a simple illustration:
-------------------------------------------------------
Sub Test_1()
On Error GoTo myErrorHandler
For MyIndex = 1 To 40
....myCode1
Next myIndex
....myCode2
Exit Sub

myErrorHandler:
MsgBox "The non-linear multi-variant algorithm failed ..."
End Sub
--------------------------------------------------------
I would like to clear (or suppress) the Err object, if any run-time error
occurs within the For loops, until the For loops are complete.
If there's a run-time error for the current value of myIndex, then move to
the next value of myIndex.
If there's at least one error-free loop at the end of the For ... Next, then
ignor any run-time error(s) which might have been encountered and resume
next.
If there is no viable solution (i.e.; no error-free loop at the end of the
For ... Next), then GoTo myErrorHandler.

Could someone please show how-to accomplish that?
You might prefer to put the procedure in a separate routine to be called
from within the For ... Next.

Thank you kindly.



All times are GMT +1. The time now is 01:20 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com