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 / September 2007

Tip: Looking for answers? Try searching our database.

type mismatch error when passing collection byRef

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Tara H - 14 Sep 2007 17:14 GMT
I have two possible collections that I might want a particular sub to operate
on.  Both are Dim'd at the top of the module:
Dim my_AEs, my_AMs As Collection

...

the sub in question is:

Sub identify_team(ByVal team_name As String, ByRef col As Collection)

   Dim last_row As Integer
   Dim team_range As Range
   Dim myRow As Range

   Set col = New Collection

   last_row = Sheets("Sales Team Lookup").Range("A1").End(xlDown).Row
   Sheets("Sales Team Lookup").Activate  '**can't avoid this line
   Set team_range = Sheets("Sales Team Lookup").Range(("A1:E1"),
Range("A:E").Rows(last_row))

   For Each myRow In team_range.Rows
       If myRow.Cells(1, 2).Value = team_name And myRow.Cells(1, 4) = "AE"
Then
           col.Add Item:=myRow.Cells(1, 1).Value, Key:=myRow.Cells(1,
1).Value
       End If
   Next myRow
End Sub

I call this by:

identify_team my_team_name, my_AEs

but this gives me a type mismatch error and highlights my_AEs.

The watch window says at this point that the Type of my_AEs is
Variant/Object/Collection.

I'd appreciate any advice or insights on this.

(I'd also really like to know why I need the line Sheets("Sales Team
Lookup").Activate in identify_team.  If I leave this out it stops on the next
line.  I can then click on the Sales Team Lookup sheet and click on continue
and it runs the rest of it fine.  I don't understand why this is)

Many thanks in advance.

Tara H
George Nicholson - 14 Sep 2007 17:30 GMT
> Dim my_AEs, my_AMs As Collection

The above line declares my_AEs as a Variant (since it's unspecified) and
my_AMs as a Collection.
My guess is that since my_AEs isn't a collection that's why you get the
error when you pass it as one.

try:

Dim my_AEs As Collection, my_AMs As Collection

or (my preference, for readability if no other reason):

Dim my_AEs As Collection
Dim my_AMs As Collection

HTH,

>I have two possible collections that I might want a particular sub to
>operate
[quoted text clipped - 48 lines]
>
> Tara H
Tara H - 14 Sep 2007 17:56 GMT
*slaps forehead* Thank you!

I guess what was confusing me was that it was showing as
Variant/Object/Collection.  I also tried Set my_AEs = new collection at one
point and that didn't seem to help.

I guess that explains a couple of other mysterious errors I've been having...

Thanks!
Tara H

> > Dim my_AEs, my_AMs As Collection
>
[quoted text clipped - 66 lines]
> >
> > Tara H
 
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.