What about using an error handler?
....
On error GOTO ErrHndlr
....
Exit sub
ErrHndlr:
Select Case Err
Case 'whatever err you anticipate
'get out of whatever loop or tell the user what happened
'so you can handle groups or single errors
....
err.clear
Case Else
MsgBox "An unanticipated error has occurred: " & vbcrlf &
"ERROR#: " & Err.Number & _
vbCRLF & Err.Description",
vbInformation,App.Title,Err.HelpFile, Err.HelpContext
'Comment out the STOP and RESUME before distribution, these will
let you locate the error
Stop
Resume
'Do whatever you want to do with unknown errors, I usually END
the application after writing to a textfile 'the info of the
error, date, and where it happened - I don't usually trust the User for this
WriteErrorToTextfile
Err.Clear
End
End Select