/ / Scripting.Dictionary-Schlüssel für Listbox VBA Excel - Excel, vba, excel-vba, Listbox, scripting.dictionary

Scripting.Dictionary Schlüssel zu Listbox VBA Excel - Excel, VBA, Excel-VBA, Listbox, Scripting.dictionary

Ich habe mit VBA in Excel gearbeitet und habe vor kurzem mit dem Scripting.Dictionary-Objekt gearbeitet. Ich hatte bis heute keine größeren Probleme.

Grundsätzlich versuche ich eine Listbox mit zu füllendie Schlüsselwerte eines Wörterbuchs, und fügen Sie dem Listenfeld einen weiteren Wert hinzu. Dies führt dazu, dass der Wert nicht nur zum Listenfeld hinzugefügt wird, sondern auch zum Wörterbuch als Schlüssel. Ich habe versucht, die Werte aus dem Array dict.keys () in ein vollständig separates Array zu kopieren, habe aber immer noch das gleiche Problem. Ich gehe davon aus, dass dies ein byref-Problem ist, aber noch keine Lösung gefunden hat. Wenn jemand irgendwelche Ideen hat, wäre das großartig.

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

Antworten:

1 für die Antwort № 1

Dies scheint zu funktionieren

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