Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / March 2008

Tip: Looking for answers? Try searching our database.

On Error - Only executing once.

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
NateBuckley - 27 Mar 2008 11:54 GMT
Hello I have a On Error Goto statement, yet it only works once, then It just
ignores and tries to execute although this causes it to crash.

I'm attempting to grab stuff from a collection

Set tmp = lookUpCollection.Item("Monkey"), there is no object with the key
monkey, and it bypasses it on the first go by following my error handling line

On Error Goto ShouldSkip

The ShouldSkip label contains the following

ShouldSkip:
   skip = True
   GoTo CheckSkip

Why is it only doing it once, I've used this method before and it worked
fine, just all of a suddent I'm getting the error

Invalid Procedure Call or argument.

Thanks in advance.
paul.robinson@it-tallaght.ie - 27 Mar 2008 12:03 GMT
Hi
Not enough info.
"Only works once" - are you in a loop? Let's see it.
What are the scope of the variables? Is skip a public or private
variable being tested in a loop??
Is tmp really an object in a collection of objects, or a variant???

regards
Paul

On Mar 27, 10:54 am, NateBuckley
<NateBuck...@discussions.microsoft.com> wrote:
> Hello I have a On Error Goto statement, yet it only works once, then It just
> ignores and tries to execute although this causes it to crash.
[quoted text clipped - 18 lines]
>
> Thanks in advance.
Per Jessen - 27 Mar 2008 12:05 GMT
Hi Nate

It's not easy to see what's wrong without the entire code!

Do you set
   skip = False
before second loop?

Regards,

Per

> Hello I have a On Error Goto statement, yet it only works once, then It
> just
[quoted text clipped - 20 lines]
>
> Thanks in advance.
NateBuckley - 27 Mar 2008 12:18 GMT
My Apologies for not posting the code,
please excuse the mess that is the code :)

Option Explicit
Private FoundProducts As Collection
Public Sub lookUp()
   Dim skip As Boolean
   Dim SingleProduct As C_ProductCode
   Dim foundProduct As C_EntireBay
   Dim lookUpCollection As Collection
   Dim str As String
   Dim binCode() As String
   Dim prodCode() As String
   Dim binNum As Long
   Dim prodNum As Long
   prodNum = Sheets("LI").Cells(Rows.Count, "K").End(xlUp).Row
   binNum = Sheets("LI").Cells(Rows.Count, "A").End(xlUp).Row
   
   Set lookUpCollection = New Collection
   Set FoundProducts = New Collection
   
   Dim i As Long
   Dim j As Long
   For i = 2 To prodNum
       prodCode = Split(Sheets("LI").Cells(i, 11).Value, "/")
       str = ""
       For j = 0 To UBound(prodCode)
           str = str & prodCode(j)
       Next j
       Set SingleProduct = New C_ProductCode
       SingleProduct.AtRow = i
       SingleProduct.ProductCode = str
       On Error Resume Next
       lookUpCollection.Add SingleProduct, SingleProduct.ProductCode
       On Error GoTo 0
   Next i
   For i = 2 To binNum
       skip = False
       str = ""
       binCode = Split(Sheets("LI").Cells(i, 6).Value, "/")
       For j = 0 To UBound(binCode)
           str = str & binCode(j)
       Next j
       On Error GoTo ShouldSkip
       Set SingleProduct = lookUpCollection.Item(str) 'PROBLEMS
CheckSkip:
       If skip = False Then
           Set foundProduct = New C_EntireBay
           foundProduct.Aisle = Sheets("LI").Cells(i, 1).Value
           ...
           ...
           foundProduct.Allocation = Sheets("LI").Cells(i, 9).Value
           foundProduct.Code = SingleProduct.ProductCode
           'Sheets("LI").Cells(SingleProduct.AtRow, 12).value = "Exists
within -" & Sheets("LI").Cells(i, 1) & Sheets("LI").Cells(i, 2) &
Sheets("LI").Cells(i, 3)
           FoundProducts.Add foundProduct
       Else
       End If
   Next i
       Call clearKAndL
       Call foundProductsToNewSheet
Exit Sub
ShouldSkip:
   skip = True
   GoTo CheckSkip
End Sub
Nigel - 27 Mar 2008 12:39 GMT
Simple one,  what is your error trapping level set to in the VBE project?

Signature

Regards,
Nigel
nigelnospam@9sw.co.uk

> My Apologies for not posting the code,
> please excuse the mess that is the code :)
[quoted text clipped - 63 lines]
>    GoTo CheckSkip
> End Sub
NateBuckley - 27 Mar 2008 12:52 GMT
Hello,

It's currently set to "Break on unhandled errors"

Maybe I should just do some kinda test to see if the object exists within
the collection already, it's just the java equivlent of if(object!=null)
doesn't seem to be around in VBA.

> Simple one,  what is your error trapping level set to in the VBE project?
>
[quoted text clipped - 65 lines]
> >    GoTo CheckSkip
> > End Sub
Jim Cone - 27 Mar 2008 13:15 GMT
I would try replacing "GoTo CheckSkip" with "Resume CheckSkip"
Signature

Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)

"NateBuckley" <
wrote in message
Hello I have a On Error Goto statement, yet it only works once, then It just
ignores and tries to execute although this causes it to crash.

I'm attempting to grab stuff from a collection
Set tmp = lookUpCollection.Item("Monkey"), there is no object with the key
monkey, and it bypasses it on the first go by following my error handling line

On Error Goto ShouldSkip
The ShouldSkip label contains the following

ShouldSkip:
   skip = True
   GoTo CheckSkip

Why is it only doing it once, I've used this method before and it worked
fine, just all of a suddent I'm getting the error
Invalid Procedure Call or argument.
Thanks in advance.

NateBuckley - 27 Mar 2008 13:36 GMT
Cheers Mate that one little change fixed it all,

Why is that?

Thank you!

>  
> I would try replacing "GoTo CheckSkip" with "Resume CheckSkip"
Jim Cone - 27 Mar 2008 13:54 GMT
Any form of "Resume" (in an error handler) clears the error and enables error handling again.
'--
Jim Cone

"NateBuckley"
wrote in message
Cheers Mate that one little change fixed it all,
Why is that?
Thank you!

"Jim Cone" wrote:  
> I would try replacing "GoTo CheckSkip" with "Resume CheckSkip"

> "NateBuckley" <
> wrote in message
[quoted text clipped - 16 lines]
> Invalid Procedure Call or argument.
> Thanks in advance.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.