propiedades form excel-vba listbox userform

excel vba - propiedades - Listbox se establece en Null de alguna manera en la forma de usuario excel-vba



userform excel pdf (1)

Por extraño que parezca, hay dos clases llamadas ListBox de diferentes bibliotecas, y VBA las confunde (lo mismo se aplica a todos los controles en realidad). Depende de si está utilizando los controles MSForms o los controles ActiveX .

En su caso, debe desambiguar con MSForms.ListBox que es el tipo real de su listbox.

Sub loadList(list As MSForms.ListBox, id As Integer) '' ^^^^^^^

Para evitar tales dudas, también puede usar la list As Object , (haría que su sub maneje ambos tipos siempre que use solo los métodos comunes).

Contexto: estoy codificando un formulario de usuario que tendrá algunos filtros para ejecutar un procedimiento y completar una hoja de trabajo con el valor de retorno.

Estoy teniendo problemas con uno de mis filtros. Pude reproducir mi problema en una versión reducida. Este filtro debe cargar datos en un cuadro de lista basado en la opción del cuadro combinado seleccionado:

No cambié el nombre, los componentes son: UserForm1 , ListBox1 y ComboBox1 .

Mi código roto (comentado):

Option Explicit ''sub that fill data in the list box columns Sub loadList(list As ListBox, id As Integer) list.Clear If (id > 0) Then list.AddItem list.Column(0, 0) = "Item 1" list.AddItem list.Column(0, 1) = "Item 2" End If End Sub ''event that will trigger the loadList sub Private Sub ComboBox1_Change() Dim id As Integer id = ComboBox1.ListIndex loadList ListBox1, id End Sub ''the combo options is auto initialized Private Sub UserForm_Initialize() ComboBox1.AddItem ComboBox1.Column(0, 0) = "Option 1" ComboBox1.AddItem ComboBox1.Column(0, 1) = "Option 2" End Sub

Cuando configuro un punto de encuentro, puedo ver el problema. ListBox1 se establece en Null , pero no sé cómo evitarlo:

El error dice:

Error "13" en tiempo de ejecución: no coincide con el tipo

Pero es obvio porque el ListBox1 se establece en Null alguna manera.

¿Alguien ha experimentado este comportamiento antes? ¿Cómo solucionarlo? Gracias por adelantado.