2010-03-03 12 views
9

Necesito convertir un objeto genérico de control de formulario de VBA en un objeto ComboBox para poder agregarle elementos. El objeto genérico no me permite insertar elementos en mis listas existentesExcel VBA: ¿cómo convertir un objeto de control genérico en un objeto 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 

Mi problema es: Tengo toneladas de ComboBoxes en mi forma y tengo que añadir las mismas opciones para todos ellos. Por lo tanto, me gustaría hacer esto de forma programática.

+1

hombre de confianza está en lo cierto. Necesitas usar Set. – Stewbob

Respuesta

14

Puede "fundido" un objeto de VBA mediante el uso de SET, por ejemplo:

SET lbCurrentComboBox = ctlCurrent 
+2

¡Oye, gracias! Esto hizo el truco. –

+1

justo lo que necesitaba. –

5

Si phil's answer no funciona prueba

SET lbCurrentComboBox = ctlCurrent.Object 
Cuestiones relacionadas