/ / Scripting.Dictionary chiavi per Listbox VBA Excel - excel, vba, excel-vba, listbox, scripting.dictionary

Scripting.Dictionary chiavi per Listbox VBA Excel - excel, vba, excel-vba, listbox, scripting.dictionary

Ho lavorato con VBA in Excel e recentemente ho iniziato a lavorare con l'oggetto Scripting.Dictionary. Fino ad oggi non avevo incontrato problemi importanti.

Fondamentalmente sto cercando di popolare una listbox coni valori chiave di un dizionario, quindi aggiungere un altro valore alla casella di riepilogo. Ciò comporta che il valore non solo venga aggiunto alla casella di riepilogo, ma anche al dizionario come chiave. Ho tentato di copiare i valori dall'array dict.keys () in un array completamente separato, ma ho ancora lo stesso problema. Presumo che questo sia un problema di byref, ma devo ancora trovare una soluzione. Se qualcuno ha qualche idea che sarebbe fantastica.

Private Sub Setup_settingLst()
"Set Settings listbox items
"On Error GoTo ErrorExit
Dim list_ary() As Variant
Dim tmp As Variant
Dim i As Integer

settingLst.Clear
settingLst.Value = "-Select Setting-"
i = 0
tmp = tmp_dict.Keys()
If tmp_dict.Count > 1 Then
ReDim list_ary(0 To tmp_dict.Count)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
list_ary(tmp_dict.Count) = "Back"
Else
ReDim list_ary(0 To tmp_dict.Count - 1)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
End If
settingLst.List = list_ary
Erase list_ary
Exit Sub
ErrorExit:
End Sub

risposte:

1 per risposta № 1

Questo sembra funzionare

Private Sub UserForm_Click()

Dim dcValues As Scripting.Dictionary

Me.ListBox1.Clear
Set dcValues = FillDictionary

Me.ListBox1.List = dcValues.Keys
Me.ListBox1.AddItem "Back"

End Sub