How to transfer a ListBox to a function

S

Stefan Mueller

In VBA I'd like to transfer a ListBox to a function.

For example:
Private Sub CommandButton1_Click()
Call GetIndex(ListBox1)
End Sub

Public Sub GetIndex(TempListBox As ListBox)
MsgBox (TempListBox.ListIndex)
End Sub

Why do I get in VBA (e.g. Excel) at the statement
Call GetIndex(ListBox1)
the Run-time error '13' (Type mismatch)? In real VB it works.

PS: If I use
Public Sub GetIndex(TempListBox As Variant)
it works. But I don't understand why.
 
J

Jim Thomlinson

Give this a whirl...

Private Sub CommandButton1_Click()
Call GetIndex(ListBox1)
End Sub

Public Sub GetIndex(TempListBox As MSForms.ListBox)
MsgBox (TempListBox.ListIndex)
End Sub

In XL there are a couple of different types of listboxes. Unless specified
otherwise VBA assumes you mean the native listbox (the type that comes from
the forms toolbar) not the ActiveX control that you are using in your form
(or at least I think that is the way it works)...
 

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