Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Iteration durch

Iteration durch
27.04.2017 11:44:19
Marc
Hi,
ich bekomm es nicht gebacken durch mein Dictionary zu iterieren. Habe es jetzt wie unten beschrieben versucht:
Dim Parent As Object
Set Parent = CreateObject("Scripting.Dictionary")
(...)
ParentKeys = Parent.Keys
For i = Parent.Count To 1 Step -1
MsgBox (Parent.Keys()(i))
Next i
Auch der Versuch von MsgBox (ParentKeys(i)) liefert nix. Eigentlich auch klar, weil mein Key ja nicht eine Zahl ist, sondern ein String und entsprechend müsste ich vermutlich mit einem validen Key abfragen. Aber selbst wenn ich das mache kommt am Ende eine Meldung "Typen unverträglich". Davon abgesehen will ich auch gar nicht mit den richtigen Keys interieren, weil das Dictionary dynamisch gefüllt ist und meine Liste potentieller Strings eben nicht immer vollständig vorhanden ist.
Stehe irgendwie auf dem Schlauch...wer kann helfen?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Iteration durch Scripting.Dictionary
27.04.2017 11:45:02
Marc
Sorry - jetzt auch mit richtigem Betreff
AW: Iteration durch Scripting.Dictionary
27.04.2017 11:54:42
Daniel
Hi
meinst du das so:

ParentKeys = Parent.Keys
For i = Ubound(ParentKeys) to Lbound(ParentKeys) step - 1
MsgBox ParentKeys(i) & " - " & Parent(ParentKeys(i))
Next i
Gruß Daniel
AW: Iteration durch Scripting.Dictionary
27.04.2017 12:50:32
Marc
Danke. MsgBox ParentKeys(i) liert mir noch den aktuellen Key. Damit komme ich wohl weiter.
Allerdings bekomme ich bei dem zweiten Ausdruck Parent(ParentKeys(i)) einen Fehler: Falsche Anzahl an Argumenten oder falsche Zuweisung zu einer Eigenschaft ?!
AW: Iteration durch Scripting.Dictionary
27.04.2017 13:06:26
Daniel
Hi
sorry, kann ich nicht nachvollziehen.
bei mir funktioniert es ohne Fehler.
was hast du denn deinem Dictionary als Items zugewiesen?
hast du alle Variablennamen richtig geschrieben?
du solltest dein Dictionary nicht "Parent" nennen.
"Parent" ist ein VBA-Schlüsselwort, mit welchem man von einem Objekt auf das übergeordnete Objekt schließen kann (Range(...).Parent ergibt das Worksheet, auf dem die Range liegt)
Gruß Daniel
Anzeige
AW: Iteration durch Scripting.Dictionary
27.04.2017 13:09:29
Marc
Das könnte es vielleicht sein. In meinem Dictionary liegt zu jedem Schlüssel ein weiteres Dictionary mit Key/Value Paar. Gut möglich, dass das hier die Ursache sein könnte, oder?
Dann benenne ich Parent und Child mal entsprechend um - danke für den Hinweis.
AW: Iteration durch Scripting.Dictionary
27.04.2017 13:16:52
Daniel
Wie gesagt, im Dictionary kann das Item alles sein, Wert oder auch Objekt wie z.B. ein weiteres Dictionary.
Mein Beispiel war jetzt nur für den einfachen Wert-Fall geschrieben.
Wenn deine Items Objekte sind, musst du mit ihnen natürlich entsprechend verfahren, so wie es mit dem jeweiligen Objekt erforderlich ist.
Gruß Daniel
Anzeige
AW: Iteration durch Scripting.Dictionary
27.04.2017 13:20:22
Rudi
Hallo,
ohne Array:
Sub aaaa()
Dim objParent As Object, vntKey As Variant
Dim i As Integer
Set objParent = CreateObject("scripting.dictionary")
'Dictionary füllen
For i = 65 To 100
objParent(Chr(i)) = i
Next
For Each vntKey In objParent
MsgBox vntKey & vbLf & objParent(vntKey)
Next
End Sub

AW: noch ein Versuch
27.04.2017 13:30:25
Fennek
Hallo,
wie wäre das:

with createObject("Scripting.Dictionary")
'laden
Cells(1).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
end with
mfg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige