Complete Code for Sorting a Listbox:   Return to List

' NOTE: aryTemp() is zero-based in this example
Private Sub SortBtn_Click()
    HighestElement = lstFiles.ListCount-1' The Count begins at 1 while arrays begin at 0
    ReDim aryTemp(HighestElement)
    For i = 0 To HighestElement    
        aryTemp(i) = lstFiles.List(i)    
    Next
    Quick_Sort aryTemp(), LBound(aryTemp()), UBound(aryTemp())
    For i = 0 To HighestElement
        lstFiles.List(i) = aryTemp(i)
    Next
End Sub

' Single Dimension Sort with Single Compare
Private Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As Long)
    Dim Low As Long, High As Long
    Dim Temp As Variant, List_Separator As Variant
    Low = First
    High = Last
    List_Separator = SortArray((First + Last) / 2)
    Do
        Do While (SortArray(Low) < List_Separator)
            Low = Low + 1
        Loop
        Do While (SortArray(High) > List_Separator)
            High = High - 1
        Loop
        If (Low <= High) Then
            Temp = SortArray(Low)
            SortArray(Low) = SortArray(High)
            SortArray(High) = Temp
            Low = Low + 1
            High = High - 1
        End If
    Loop While (Low <= High)
    If (First < High) Then Quick_Sort SortArray, First, High
    If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub



Note to Webmaster