Error Handler Not working 2nd time

T

Todd Huttenstine

Hey guys, below is an error handler I have. It will goto
label ErrHandler2a when there is an error. The error I am
trying to trap is error 52, so below that label I specify
what to do when it encounters error type 52. The reason
there would be an error (error type 52) is if one of the
variables are an invalid file path. This code works the
first time it encounters the error, however the 2nd time
it encounters, it displays the debug message telling me
error type 52. This is the exact thing it handled the
first time, whats wrong with it the 2nd time? I always
thought that when the "next" statement executes, the error
is reset. Is this right?

On Error goto ErrHandler2a
ABFileFrom2 = BS & "\" & f1x.Name
ABFileTo2 = ABL2 & "\" & f1x.Name
FileCopy ABFileFrom2, ABFileTo2
DoEvents
ErrHandler2a:
If Err.Number = 52 Then
Else
End If
Else
Resume Next
End If
Next
End If
 
G

Gigglefritz

I can't exactly follow your code, but it looks like your Resume Next (not
Next) is within an if structure that doesn't get executed. Try:

Sub test()
On Error GoTo ErrHandler2a
'Do strange and unusual things
Exit Sub
ErrHandler2a
If Err.Number = 52 Then
'Handle error 52
Else
MsgBox Err.Number & vbCRLF & Err.Description
End If
Resume Next
End Sub
 
P

pfsardella

Todd,

You need to use a Resume statement in your error handling block in
order to "reset" the error handler. Otherwise, you are still in
"error mode" and cannot trap subsequent errors.

Look in VBE help for 'Resume Statement' and 'Error Handling'.

If Err.Number = 52 Then
' Handle error.
Resume 'one of its forms from VBE Help.
End If

HTH
Paul
 
T

Todd Huttenstine

thanks guys. I used resume Next and that worked. I
wanted to use the goto method because then I could specify
the exact error.
 

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