Ho aggiunto un ListBox a un SHEET (non a un "UserForm") L'ho fatto usando il mouse. Ho fatto clic sull'icona piccola Hammer and Wrench.Come faccio a fare riferimento a un oggetto di controllo, su un foglio di lavoro, usando un nome di variabile?
Questo ListBox sembra essere facilmente riferimento utilizzando il codice come questo:
ListBox1.Clear
o
ListBox1.AddItem("An option")
Tuttavia, ho tre di queste ListBoxes (nome, convenientemente, ListBox1, ListBox2, e ListBox3) e voglio scrivere una funzione per popolare con dati di array, come questo:
Call populate_listbox(ListBox2, designAreaArray)
Se il primo argomento è il nome della casella di riepilogo, il secondo è i dati.
Ma non so come inviare "ListBox2" correttamente o farvi riferimento correttamente all'interno della funzione.
Ad esempio:
Dim controlName as string
controlName = "ListBox1"
non funziona, anche se definisco la funzione come segue:
Sub populate_listbox(LB As ListBox, dataArray As Variant)
Dim i As Integer: i = 0
For i = LBound(dataArray, 2) + 1 To UBound(dataArray, 2) ' Skip header row
LB.AddItem (dataArray(index, i))
Next i
End Sub
Chiaramente traduce in un errore di tipo di dati mis-abbinato. Ho provato a definire "controlName" come ListBox, ma non ha funzionato neanche ...
Anche se forse è il mio riferimento alla listBox che non è corretto. Ho visto modi in tanti a fare riferimento a un oggetto di controllo ...
MSForms.ListBox.
ME.ListBox
Forms.Controls.
Worksheet.Shapes.
la lista potrebbe continuare un on, e niente ha funzionato per me.
Grazie. Ho modificato la mia risposta per justnS e ho impostato la mia variabile (cMyListbox) come indicato sopra, e la combinazione ha funzionato. Grazie per il suggerimento per quanto riguarda il riempimento della lista, anche. – Symmitchry
No prob, contento che abbia funzionato per te. – Reafidy