2010-03-03 5 views
9

Ho bisogno di lanciare un oggetto di controllo forma generica VBA in un oggetto ComboBox in modo che io possa aggiungere elementi ad esso. L'oggetto generico non mi permette di inserire elementi in liste esistentiVBA Excel: come eseguire il cast di un oggetto controllo generico in un oggetto ComboBox?

Dim ctlCurrent As MSForms.Control 
For Each ctlCurrent In frmItemInput.Controls 
    If TypeName(ctlCurrent) = "ComboBox" Then 
     Dim lbCurrentComboBox As MSForms.ComboBox 
     lbCurrentComboBox = ctlCurrent 'This is where the error occurs, when I try to convert one into another 

     ' Adiciona os itens necessários 
     lbCurrentComboBox.AddItem ("R") 
     lbCurrentComboBox.AddItem ("D") 
    End If 
Next ctlCurrent 

Il mio problema è il seguente: Ho tonnellate di ComboBoxes nella mia forma e ho bisogno di aggiungere le stesse opzioni per tutti loro. Quindi vorrei farlo in modo programmatico.

+1

scagnozzo ha bene. Devi usare Set. – Stewbob

risposta

14

Si può "lanciare" un oggetto VBA utilizzando SET, ad esempio:

SET lbCurrentComboBox = ctlCurrent 
+2

Ehi, grazie! Questo ha fatto il trucco. –

+1

proprio quello di cui avevo bisogno. –

5

Se phil's answer non ha funzionato provare

SET lbCurrentComboBox = ctlCurrent.Object