2017-12-21 2 views
0

Ich versuche, auf eine ComboBox auf einem UserForm von einem Sub zuzugreifen. Daher versuche ich ein Combobox-Objekt hinein zu geben.Erstellen Sie ein ComboBox-Objekt, um es in einen Sub

Allerdings scheint es mir nicht möglich, ein Combobox-Objekt zu erstellen, um es zu übergeben. Sie sind immer leer, wenn Sie das Sub eingeben. Das ist, was ich habe versucht:

Dim ctl As ComboBox 

Set ctl = Me.cb_FcnName 'cb_FcnName is the name of the Combobox I'm trying to access 

Call ColumnEntries2Combobox(ctl) 

Und das ist mein Sub:

Private Sub ColumnEntries2Combobox(ByRef Combo As ComboBox) 
    Combo.AddItem = Worksheets(WorksheetName).Cells(currRow, 2) 
End Sub 

Aus irgendeinem Grund kann ich nicht auf alle Unterlagen zu finden scheinen, wie die erforderliche Combobox Objekt erstellen Pass in die Sub ...

Vielen Dank im Voraus für jede Art von Hilfe!

+1

Sie sollten nicht ein neues Objekt erstellen müssen, können Sie benutze einfach: 'ColumnEntries2Combobox (cb_FcnName)' – braX

+0

Ich habe das gerade am Anfang gemacht und ich bekomme einen Kompilierungsfehler in der Zeile in der Sub mit dem AddItem. Es sagt mir, dass es eine Funktion oder Variable erwartet. – budekatude

+1

Dieser Code funktioniert für mich. Erklären Sie "immer leer beim Betreten des Sub"? Woher weißt du das? Ist die ComboBox auf einem UserForm und der Sub in demselben Klassenmodul? –

Antwort

2

AddItem ist eine Methode, keine Eigenschaft. Bei einer Methode liefern wir Argumente nach einem Leerzeichen, im Vergleich zu einer Eigenschaft, die gleich ist.

So

 Combo.AddItem = Worksheets(WorksheetName).Cells(currRow, 2) 

zu

 Combo.AddItem Worksheets(WorksheetName).Cells(currRow, 2) 

ändern Dies ist ein häufiger Fehler, so dass eine einfache Demonstration ist:

object.Property = value 

object.Method arg1, arg2 
Verwandte Themen