Ich schrieb eine Funktion, die ein Wörterbuch mit Schlüssel => Wertpaare aus einem Excel-Blatt erstellt. Das funktioniert soweit, aber ich habe herausgefunden, dass mein Diktat Schlüssel duplizieren kann, wenn Zellen denselben Wert haben.VBA-Zellen als Schlüssel im Wörterbuch
Kann mir jemand dieses Verhalten erklären?
Function CreateDictionaryBySheet(_
SheetName As String, _
Optional KeyColumn As Long = 1, _
Optional ValueColumn As Long = 2, _
Optional StartRow As Long = 2 _
) As Object
Dim MyDictionary As Object
Set MyDictionary = CreateObject("Scripting.Dictionary")
Worksheets(SheetName).Activate
Dim MaxRows As Long
MaxRows = GetNumberOfRows(SheetName, KeyColumn)
Dim Row As Long
For Row = StartRow To MaxRows
MyDictionary.Item(Cells(Row, KeyColumn)) = Cells(Row, ValueColumn)
Next Row
Set CreateDictionaryBySheet = MyDictionary
End Function
Ich schrieb diese Schleife meinen Code zu überprüfen:
Sub Test()
Dim Key As Variant
Dim MyDictionary As Object
Set MyDictionary = CreateDictionaryBySheet("Config")
For Each Key In MyDictionary
MsgBox (Key & " => " & MyDictionary(Key))
Next Key
End Sub
Unter der Annahme, dass die Zellen (2,1) und Zellen (3,1) beide sind "a" und Zellen (2,2) = 1 und cells (3,2) = 2 Ich sehe zwei msgboxes: eins mit "a => 1" und eins mit "a => 2"
Das erscheint mir seltsam, weil ich angenommen habe, es einfach zu sehen eine msgbox nämlich "a => 2"
Danke für Ihre Hilfe! Peter