Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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

Arrays vergleichen und Wert rausschreiben

Arrays vergleichen und Wert rausschreiben
12.01.2016 11:55:07
muehli
Hallo zusammen,
ich stehe momentan vor dem Problem, dass ich 16 Arrays (array1();array2()...) miteinander vergleichen möchte.
In den 16 Arrays sind verschieden viele Werte hinterlegt (Arrays sind nicht gleich groß).
Alle enthalten jedoch nur ganze Zahlen.
Wenn ein Wert nun in ALLEN 16 Arrays vorkommt, soll er mir mit einer MsgBox ausgegeben werden. Also wenn beispielsweise die Zahl "1234" in JEDEM der Arrays hinterlegt ist, soll mir diese ausgegeben werden (mehrere Ergebnisse möglich)
Kann mir jemand helfen?
Freundliche Grüße und danke
Muehli

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arrays vergleichen und Wert rausschreiben
12.01.2016 12:36:32
Jürgen
Hallo Muehli,
eine nicht schnelle, aber funktionierende Art ist die Schachtelung in For Each-Schleifen.
Sub test()
Dim array1(), array2(), array3()
Dim Wert, Wert2, Wert3, x
array1 = Array(1, 2, 3, 4, 5)
array2 = Array(1, 2, 6, 7, 8, 9)
array3 = Array(1, 3, 4, 5)
For Each Wert In array1
For Each Wert2 In array2
If Wert = Wert2 Then
For Each Wert3 In array3
If Wert = Wert3 Then
x = MsgBox(Wert)
Exit For
End If
Next Wert3
Exit For
End If
Next Wert2
Next Wert
End Sub

Da du ja nach Werten suchst, die in allen Arrays vorkommen, kann die Schleifung in jeder Stufe abgebrochen werden, in der der ERSTE Wert nicht gefunden wird.
Gruß
Jürgen

Anzeige
AW: Arrays vergleichen und Wert rausschreiben
12.01.2016 15:07:36
Rudi
Hallo,
als Ansatz:
Sub aaaa()
Dim objArr As Object, oArr, i As Integer
Set objArr = CreateObject("Scripting.dictionary")
'Code
For i = LBound(arr1) To UBound(arr1)
objArr(arr1(i)) = objArr(arr1(i)) + 2 ^ 0
Next i
For i = LBound(arr2) To UBound(arr2)
objArr(arr2(i)) = objArr(arr2(i)) + 2 ^ 1
Next i
'etc bis
For i = LBound(arr16) To UBound(arr16)
objArr(arr16(i)) = objArr(arr16(i)) + 2 ^ 1
Next i
For Each oArr In objArr
If objArr(oArr)  65535 Then objArr.Remove oArr
Next
If objArr.Count Then
MsgBox Join(objArr.keys, vbLf)
Else
MsgBox "Keine Übereinstimmung"
End If
End Sub
Geht so nur, wenn die Werte innerhalb eines Arrays einmalig sind.
Gruß
Rudi

Anzeige
AW: Arrays vergleichen und Wert rausschreiben
13.01.2016 09:27:28
muehli
Hallo zusammen,
danke für eure Antworten!
Gruß
Muehli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige