da ich mich derzeit gerade in die Welt der Array einarbeite, brauche ich bei folgender Aufgabenstellung einmal Eure Hilfe.
Ich möchte gern ein mehrdimensionales Array unter Beachtung bestimmter Dimensionen gern von Duplikaten befreien.
Im Netz habe ich hierzu schon einmal gestöbert, aber nur eine Lösung für ein zweidimensionales Array gefunden, welches auch nur nach der 1. Dimension bereinigt wird.
Habt ihr eine Idee, wie ich eine allgemeine
Function erstellen kann, die
- unter Angabe bis zu welcher Dimension Duplicate entfernt
- das Array sortiert
- die Anzahl der Dimensionen kann verschieden sein
Function TwinKiller(arr) As Variant
Dim L As Long
Dim i As Integer
Dim myDic As Object
Dim strTmp As String
Const Dummy As String = vbTab
Set myDic = CreateObject("Scripting.Dictionary")
For L = LBound(arr) To UBound(arr)
strTmp = ""
For i = LBound(arr, 2) To UBound(arr, 2)
strTmp = strTmp & arr(L, i) & Dummy
Next
myDic(strTmp) = 0
Next
'Rückgabe an Array
Dim RowArr As Variant, ColArr As Variant
Dim RowDif As Long, ColDif As Long
RowDif = LBound(arr, 1)
ColDif = LBound(arr, 2)
RowArr = myDic.keys
ColArr = Split(RowArr(0), Dummy)
ReDim arr(RowDif To UBound(RowArr) + RowDif, ColDif To UBound(ColArr) + ColDif - 1)
For L = 0 To UBound(RowArr)
ColArr = Split(RowArr(L), Dummy)
For i = 0 To UBound(ColArr) - 1
arr(L + RowDif, i + ColDif) = ColArr(i)
Next
Next
TwinKiller = arr
End Function
Danke Euch schon mal
VG Steffen