VBA – Ein Dictionary aus einem Range kriegen – HashMap-Ersatz

In meinen Tabellen muss ich regelmäßig “Einstellungen” und valide Werte auslesen.
Anfänglich geschah das mit Einlesen der Werte manuell in ein Array – besser geht es jedoch indem ich mit “Dictionarys” arbeite.

' Für 2 Dimensionen wird aus angegebenen Startpunkt für die Anzahl der Zeilen ein Range festgelegt
Public Function getDictionaryFromRange(Worksheet As String, rangeValue As String, numberOfLines As Integer) As Scripting.Dictionary
    Dim dict As Scripting.Dictionary
    Set dict = New Scripting.Dictionary
    Dim settingsArray As Variant
    Dim i As Integer
    settingsArray = ThisWorkbook.Sheets(Worksheet).Range(rangeValue).value
    
    For i = 1 To numberOfLines
    Dim key As String
    Dim value As Variant
    
    key = settingsArray(i, 1)
    value = settingsArray(i, 2)
    
    If (isEmpty(key) = False And isEmpty(value) = False) Then
        dict.Add key, value
    End If
    
    Set getDictionaryFromRange = dict
    
    Next
End Function

Für das Funktionieren der Dictionarys ist bei den Verweisen die Microsoft Scripting Runtime erforderlich:

Erforderlicher Verweis zum Verwenden von Dictionarys

Im nachfolgenden Link findet ihr eine gute Anleitung zum Thema Dictionary:

https://excelmacromastery.com/vba-dictionary/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte lösen Sie die folgende Rechenaufgabe, um zu zeigen, dass Sie kein Bot sind. Danke! * Time limit is exhausted. Please reload CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.