Array QuickSort lässt Zeile aus
18.07.2020 23:57:52
Theo
in meiner Datei (https://www.herber.de/bbs/user/139158.xlsm) wollte ich ein QuickSort Makro ausprobieren um es in einem größeren Projekt zu verwenden. Dass ich im Beispiel keine Array erstellen müsste ist mir bewusst, aber die Datei dient nur Testzwecken.
So halb funktioniert das Makro auch, allerdings wird nach dem dritten Wert eine Zeile frei gelassen und der Rest verschiebt sich. Ich habe keine Ahnung woran das liegen könnte. Kann mir jemand sagen wo ich einen Fehler gemacht habe?
Sub sortieren()
Dim test_array(0 To 100)
Dim i As Long
Dim j As Long
Dim Test As Worksheet
Set Test = Worksheets("Sort_Test")
Test.Range("C5:C104").ClearContents
For i = 0 To 100
test_array(i) = Test.Cells(5 + i, 2).Value
Next i
Call QuickSort(test_array, 0, UBound(test_array))
For j = 0 To 100
Test.Cells(5 + j, 3).Value = test_array(j)
Next j
End Sub
Und hier das QuickSort Makro
Public Sub QuickSort(vArray As Variant, inLow As Long, inHi As Long)
Dim pivot As Variant
Dim tmpSwap As Variant
Dim tmpLow As Long
Dim tmpHi As Long
tmpLow = inLow
tmpHi = inHi
pivot = vArray((inLow + inHi) \ 2)
While (tmpLow inLow)
tmpHi = tmpHi - 1
Wend
If (tmpLow
Gruß,
Theo