Error handler loop?

Z

zSplash

My code searches for a string, and if found, does something, then continues
in the loop; if not found , it just re-enters the loop (without doing
something). It loops fine through the err handler once, but then it's like
it can't "see" it any more. Is this clear? Is the error handler in the
wrong place, or this just a real goofy to do what I want to do? TIA, guys

My code is:

[...blah, blah]
On Error GoTo Err_Hand91
Cells.Find(What:=Holiday, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
' if no error, must be in holiday cell - call sub
foundHoliday
NextWeek:
X = X + 1
Wend
Err_Hand91:
If Err.Number = 91 Then
Err.Clear
GoTo NextWeek
End If
[blah, blah...]
 
J

Jake Marx

Hi zSplash,

It's hard to figure out what you're trying to do without seeing all the
code. But I think you may want to use On Error Resume Next, which will
allow execution to continue when an error is encountered. Then you can just
check to see if an error did occur - if so, take appropriate action.

For example:

[...blah, blah]
On Error Resume Next

Cells.Find(What:=Holiday, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
' if no error, must be in holiday cell - call sub
If Err.Number=0 Then foundHoliday
X = X + 1
Wend
[...blah, blah]
 
J

J.E. McGimpsey

The current error handler is disabled until a Resume, Exit Sub or
Exit Function is reached. You could try:

Resume NextWeek

instead of your GoTo...


OTOH, you could do it without an error handler at all:

Dim found As Range

While...
Set found = Cells.Find(...)
If Not found Is Nothing Then foundHoliday
X = X + 1
Wend
 
A

Alex@JPCS

In the Error Handler routine Err_Hand91: try...

Resume NextWeek

instead of

Goto NextWeek.

Without the resume statement, I think the "On Error" statement will not stay
in force, but looking through help did not clarify. "Resume" automatically
clears the error.

Alex
 
Z

zSplash

Perfect!! Thanks, guys.

st.

Alex@JPCS said:
In the Error Handler routine Err_Hand91: try...

Resume NextWeek

instead of

Goto NextWeek.

Without the resume statement, I think the "On Error" statement will not stay
in force, but looking through help did not clarify. "Resume" automatically
clears the error.

Alex



zSplash said:
My code searches for a string, and if found, does something, then continues
in the loop; if not found , it just re-enters the loop (without doing
something). It loops fine through the err handler once, but then it's like
it can't "see" it any more. Is this clear? Is the error handler in the
wrong place, or this just a real goofy to do what I want to do? TIA, guys

My code is:

[...blah, blah]
On Error GoTo Err_Hand91
Cells.Find(What:=Holiday, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext,
_
MatchCase:=False).Activate
' if no error, must be in holiday cell - call sub
foundHoliday
NextWeek:
X = X + 1
Wend
Err_Hand91:
If Err.Number = 91 Then
Err.Clear
GoTo NextWeek
End If
[blah, blah...]
 

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