Dictionary als Variant deklarieren
13.10.2021 20:27:00
SchubertFranzl
In folgendem Makro bin ich gezwungen, die Variable "Verzeichnis" als Variant zu deklarieren, obwohl sie als Dictionary gedacht sind.
Sicher, das Makro läuft auch so, aber die Kontrolle der richtigen Deklaration der Übergabevariable bei Aufruf von WertSetzen fällt weg. Und das stört mich ein wenig.
Sub Test()
Dim dAuto As Object
Dim dMarke As Variant
Set dAuto = CreateObject("Scripting.Dictionary")
Set dAuto("Mercedes") = CreateObject("Scripting.Dictionary")
Set dAuto("Audi") = CreateObject("Scripting.Dictionary")
Set dAuto("BMW") = CreateObject("Scripting.Dictionary")
For Each dMarke In dAuto.items()
Call WertSetzen(dMarke)
Next dMarke
Debug.Print "Wert", dAuto("Audi")("Wert")
End Sub
Sub WertSetzen(Verzeichnis As Variant)
Verzeichnis("Wert") = 250
End Sub
dMarke muss wegen For Each wohl Variant sein, aber ich möchte die For Each-Schleife verwenden. Was sagt ihr dazu? Gibt es da eine Möglichkeit, wenn Verzeichnis als Objekt deklariert ist?
Ich verwende Late Binding und will das auch beibehalten.
LG, Franz