Hallo @ all,
ich versuch mich gerade allgmein etwas mit Dictionary in VB(A). Da hätte ich gleich mal Zwei Fragen.
Ich erstelle 2 Dic und befülle diese mit Beispieldaten.
Option Explicit
Sub dic_1D_Items()
' Verweis auf Microsoft Scripting Runtime -gesetzt-
Dim DicOne As Scripting.Dictionary ' oder As Object, wenn kein Verweis auf
' Microsoft Scripting Runtime
Dim DicTwo As Scripting.Dictionary ' oder As Object, wenn kein Verweis auf
' Microsoft Scripting Runtime
Dim vArr As Variant
On Error GoTo Fehler
Set DicOne = New Scripting.Dictionary ' dann auch CreateObject(
' "Scripting.Dictionary")
Set DicTwo = New Scripting.Dictionary ' dann auch CreateObject(
' "Scripting.Dictionary")
'## Angenommen wir haben eine Überschrift für unser Dictionary
DicOne.Add "Names", 1
DicOne.Add "Vorname", 2
DicOne.Add "Spalte3", 3
DicOne.Add "Spalte4", 4
DicOne.Add "SpalteN", 5
'## hinzufügen der Werte in mein 1. Dictionary - 1D Array
vArr = DicOne.Keys
'## hinzufügen der Werte in mein 2. Dictionary - 1D Array
'WICHTIG: +++ jeder Key, darf nur ++EINMAL++ vorkommen ("v" & x) +++
DicTwo("v" & 1) = Array("Mustermann", "Werner", "Hamburg", "demnächst", _
"keine")
DicTwo("v" & 2) = Array("Müller", "Frank", "München", "bald", "wohl kaum")
DicTwo("v" & 3) = Array("Meyer", "Katharina", "Würzburg", "niemals", "kaum")
DicTwo("v" & 4) = Array("Wundermich", "Matthias", "Hamburg", "jawohl", _
"bestimmt")
DicTwo("v" & 5) = Array("Gaschba", "Thomas", "Duisburg", "Ja", "JA")
'Werte zu KeyXYZ... in einer Schleife ....
Dim keyC As Integer 'SchlüsselCouonter
Dim myRow As Long 'BeginnZeile
myRow = 10
' alle Werte
For keyC = 1 To DicTwo.Count
Sheets(2).Range("B" & myRow).Resize(1, UBound(Application.Transpose( _
DicOne.Keys))) = DicTwo("v" & keyC)
myRow = myRow + 1 'nächste Zeile
Next
' einen ****speziellen Wert/Key*******
Dim dicItem As Variant
Dim dicKey As Variant
Dim searchKey As String
searchKey = "v4"
' ENDE im Gelände ===>>>>> ?????? klären ...................
' Set dicItem = DicOne.Keys(DicTwo.Item(searchKey))
For Each dicItem In DicTwo.Keys
If dicItem <> searchKey Then GoTo NextOne
'Set dicKey = DicTwo.Item(dicItem)
' For q = 0 To UBound(dicKey)
' Debug.Print dicKey(q)
' Next q
' For Each dicKey In DicTwo.Item(dicItem)
' Next dicKey
Set dicItem = DicTwo.Item(searchKey)
' Stop
' Debug.Print dicKey
' Next
' Set dicItem = DicTwo.Items(searchKey)
' For q = 0 To UBound(dicItem)
' Debug.Print dicItem(q)
' Next
Exit For
NextOne:
Next
'----------------------------------------------------------
Ok:
' Variablen löschen ...
Set DicTwo = Nothing
Set DicOne = Nothing
Exit Sub
Fehler:
Debug.Print Err.Description & "|" & Err.Number
GoTo Ok
End Sub ab hier: ENDE im Gelände ===>>>>> ?????? klären
wollte ich .... ich bekomm es einfach nicht hin
a) wie kann ich mir die Werte zu **einem** speziellen z.B. v4 anzeigen lassen
b) wie kann ich mir alle Werte anzeigen lassen, die in Hamburg (wohnen)
Freu mich über Infos von euch
Gruß
Werner
|