Duda paso combobox como parámetro

Tengo una duda para pasar un combobox como parámetro de un procedimiento, pero me da error "424", diciendo que se requiere un objeto.
La cuestión es que tengo un formulario, con varias ventanas, y necesito inicializar varios combobox, por lo que he creado un procedimiento con las opciones de inicialización.
En el modulo tengo 1, tengo lo siguiente:
UserForm1. ComboBox1.Style = fmStyleDropDownList
inicializarCombos (UserForm1. ComboBox1) "Aquí da el error"
Y el procedimiento es el siguiente:
Sub inicializarCombos(lista As ComboBox)
'Reseteo el listbox
With lista
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.Width = "455,2"
.ColumnCount = 3
.ColumnWidths = "375;0;30"
End With
End Sub

1 Respuesta

Respuesta
1
Siempre que te muestre el error de que se requiere un objeto es porque no declarastes tus variables y cuando VBA lee el código no puede comprender que tipo de dato tiene que manejar, para ello te dejo una página que te aclarará la forma y posibilidades de declarar las variables, es esta:
http://www.xltoday.net/vba_variables_intro.asp
Pruébalo y si tienes algún problema más me comentas, sino puntúa y finaliza la consulta.
>Un saludo
>Julio
Gracias por tu respuesta,
He revisado el enlace, pero no encuentro información muy útil.
Puntualizo un poco más, porque quizá sea un problema de conceptos.
El UserForm1ComboBox1 está pintado en un formulario, hecho con el diseñador de formularios de excel. Entiendo que cuando yo lo suelto sobre un formulario, excel se encarga de hacer la declaración de esta variable, asignándole el nombre ComboBox1.
No entiendo por qué, la línea anterior no falla
<span style="white-space: pre;"> </span>UserForm1.ComboBox1.Style = fmStyleDropDownList
Entiendo que si no está declarada la variable, y no sabe manejarla, aquí debería dar el error, y no en la línea siguiente, cuando paso la variable.
<span style="white-space: pre;"> </span>inicializarCombos (UserForm1.ComboBox1) "Aquí da el error"
Cuando dibujas un control (del tipo que sea) VBA no asigna ningún tipo de variable tan solo le da el nombre dependiendo de el número de controles iguales que agregues al formulario 1,2,3... Variable se entiende por un valor que vas a utilizar de comidín y que según en que caso su valor será "variable"
InicializarCombox(...) VBA no entiende que quieres hacer con ese procedimiento y piensa que es una variable a la que le vas a asignar un valor como arriba no declarastes la variable Dim InicializarCombox As ... String, Integer, Booleana, etc no sabe como manejar ese dato.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas