use of Case-Select, with on error

S

Steve

Morning all.
After month's of attempting to better understand error traps, I'm interested
in one last option.
The use of Case-Select with on error.
Because we're processing over 6000 files with the macros many of you have
helped us develop, we've found so far in our initial trials that there are a
variety of errors we see.
In order to catch as many of the errors as possible without interrupting our
work flow I've been thinking about using Case-select with groups of the
trappable error #'s as seen on the "trappable errors" list from the Excel
Help file.

My question here is- how do I set up the initial select statement?

My initial thoughts are:

Select Case err.number

case 1 to 50
call MacroA

case 51 to 100
Call MacroB

....
......
...

case 1000 to 1500
Call MacroN

end select


Some further clarification on the use of the err.number in this instance
would be appreciated.
Thank you.
 
G

Gary Brown

This'll give you a listing of the available errors. Run it, take a look at
the descritpions and decide what ranges to group together in your case
statement.
--
Hope this helps.
If it does, please click the Yes button.
Thanks in advance for your feedback.
Gary Brown


'/====================================/
Public Sub ErrorList()
'create list of all errors with descriptions from
' Active Cell down
Dim i As Long, iMax As Long, x As Long
Dim varAnswer As Variant

On Error GoTo err_Sub

iMax = 5000

varAnswer = _
MsgBox("The process will list errors and descriptions." _
& vbCr & vbCr & "Any errors with the description " _
& vbCr & "'Application-defined or " & _
"object-defined error' will not be included in the list." _
& vbCr & vbCr & _
"All cells below the Active cell will be erased." & _
vbCr & vbCr & "Continue?", _
vbCritical + vbYesNo + vbDefaultButton2, _
"Create Error Listing...")

If varAnswer = vbYes Then
On Error Resume Next
ActiveCell.Offset(x, 0).value = "Err.Number"
ActiveCell.Offset(x, 1).value = "Err.Description"

For i = 1 To iMax
Err.Clear
Err.Raise i
If Len(Err.Description) <> 0 And _
Err.Description <> _
"Application-defined or object-defined error" Then
x = x + 1
ActiveCell.Offset(x, 0).value = Err.Number
ActiveCell.Offset(x, 1).value = Err.Description
End If
Err.Clear
Next i
End If

On Error GoTo err_Sub
Err.Clear

Cells.EntireColumn.AutoFit
ActiveCell.Offset(1, 0).Activate
ActiveWindow.FreezePanes = False
ActiveWindow.FreezePanes = True
ActiveWindow.Zoom = 75

exit_Sub:
Exit Sub

err_Sub:
GoTo exit_Sub
End Sub
'/====================================/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top