ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Error not trapped - please help!!! (https://www.excelbanter.com/excel-programming/295444-error-not-trapped-please-help.html)

Bura Tino

Error not trapped - please help!!!
 
Hi,

I'm going nuts trying to solve the following problem. If I execute the
following code when the active sheet has no named ranges, the first error is
trapped successfully, but the second one does not get trapped and the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case, I will
really appreciate your help!

Bura



Bob Phillips[_6_]

Error not trapped - please help!!!
 
Bura,

An alternative approach

Sub MySub()
Dim r As Range
Dim isA As Boolean
Dim isB As Boolean

isA = False
isB = False

On Error Resume Next
Set r = ActiveSheet.Range("AAA")
isA = Not r Is Nothing

Set r = ActiveSheet.Range("BBB")
isB = Not r Is Nothing

On Error GoTo 0

If isA Then
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Bura Tino" wrote in message
...
Hi,

I'm going nuts trying to solve the following problem. If I execute the
following code when the active sheet has no named ranges, the first error

is
trapped successfully, but the second one does not get trapped and the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case, I will
really appreciate your help!

Bura





Chris

Error not trapped - please help!!!
 
You can't have two On Error Goto statements in one routine.

Chip Pearson

Error not trapped - please help!!!
 
You can't have two On Error Goto statements in one routine.

Sure you can. You can have as many On Error Goto statements as
you want. It may not be the best way to write the code, but it is
certainly legal.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"chris" wrote in message
...
You can't have two On Error Goto statements in one routine.




Tom Ogilvy

Error not trapped - please help!!!
 
Also, only one On Error statement can be in effect at any one time.

--
Regards,
Tom Ogilvy


"chris" wrote in message
...
You can't have two On Error Goto statements in one routine.




Bura Tino

Error not trapped - please help!!!
 


"Bob Phillips" wrote in message
...
Bura,

An alternative approach

This helped!

Sub MySub()
Dim r As Range
Dim isA As Boolean
Dim isB As Boolean

isA = False
isB = False

On Error Resume Next
Set r = ActiveSheet.Range("AAA")
isA = Not r Is Nothing

Set r = ActiveSheet.Range("BBB")
isB = Not r Is Nothing

On Error GoTo 0

If isA Then
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Bura Tino" wrote in message
...
Hi,

I'm going nuts trying to solve the following problem. If I execute the
following code when the active sheet has no named ranges, the first

error
is
trapped successfully, but the second one does not get trapped and the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case, I

will
really appreciate your help!

Bura







Bob Phillips[_6_]

Error not trapped - please help!!!
 
You can actually lose the lines

isA = False
isB = False

because the line

IsA = NOt r Is Nothing will set it to True or False, no need to
initialise
--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Bura Tino" wrote in message
...


"Bob Phillips" wrote in message
...
Bura,

An alternative approach

This helped!

Sub MySub()
Dim r As Range
Dim isA As Boolean
Dim isB As Boolean

isA = False
isB = False

On Error Resume Next
Set r = ActiveSheet.Range("AAA")
isA = Not r Is Nothing

Set r = ActiveSheet.Range("BBB")
isB = Not r Is Nothing

On Error GoTo 0

If isA Then
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Bura Tino" wrote in message
...
Hi,

I'm going nuts trying to solve the following problem. If I execute the
following code when the active sheet has no named ranges, the first

error
is
trapped successfully, but the second one does not get trapped and the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case, I

will
really appreciate your help!

Bura









Pyball[_17_]

Error not trapped - please help!!!
 
The reason the second error is not getting trapped is because the firs
error is still in affect. So when the program gets to the second erro
trap the program is still in an error condition so it executes the got
statement.

Try it this way:

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo 0 'This should clear the previous error.
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub


Bura Tino wrote:
*Hi,

I'm going nuts trying to solve the following problem. If I execut
the
following code when the active sheet has no named ranges, the firs
error is
trapped successfully, but the second one does not get trapped an
the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case,
will
really appreciate your help!

Bura


--
Message posted from http://www.ExcelForum.com


Bob Phillips[_6_]

Error not trapped - please help!!!
 
You should have tried this, you would have seen that it doesn't work.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Pyball " wrote in message
...
The reason the second error is not getting trapped is because the first
error is still in affect. So when the program gets to the second error
trap the program is still in an error condition so it executes the goto
statement.

Try it this way:

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo 0 'This should clear the previous error.
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub


Bura Tino wrote:
*Hi,

I'm going nuts trying to solve the following problem. If I execute
the
following code when the active sheet has no named ranges, the first
error is
trapped successfully, but the second one does not get trapped and
the
execution breaks!

Sub MySub()
Dim r as Range
Dim isA as Boolean
Dim isB as Boolean

isA = False
isB = False

TryA:
On Error GoTo TryB
Set r = ActiveSheet.Range("AAA")
isA= True
GoTo Proceed

TryB:
On Error GoTo Proceed
Set r = ActiveSheet.Range("BBB")
isB = True
GoTo Proceed

Proceed:
If isAThen
doAStuff
ElseIf isB Then
doBStuff
End If
End Sub

Perhaps it's invalid to have 2 "On Error" statements? In any case, I
will
really appreciate your help!

Bura *



---
Message posted from http://www.ExcelForum.com/





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

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