Logo 
Search:

MS Office Answers

Ask Question   UnAnswered
Home » Forum » MS Office       RSS Feeds
  Question Asked By: Steven Wood   on Jan 22 In MS Office Category.

  
Question Answered By: Perdita Lopez   on Jan 22

Here is a VBA QuickSort routine I picked up somewhere years ago. It has worked
well for me.

Sub QuickSort(SortMe() As String, lowbound As Long, hibound As Long)
'Recursive QuickSort routine for VBA. Sorts an array  of strings into ascending
order.
'SortMe() is the array of strings to be sorted. lowbound is the index of the
first
'element in the array (usually 0 or 1). hibound is the index of the last
element in
'the array.
Dim low As Long, high As Long, midval As String, Temp As String
low& = lowbound&
high& = hibound&
midval$ = SortMe((low + high) / 2)
While (low <= high)
While (SortMe(low) < midval And low < hibound)
low = low + 1
Wend
While (midval < SortMe(high) And high > lowbound)
high = high - 1
Wend
If (low <= high) Then
Temp = SortMe(low)
SortMe(low) = SortMe(high)
SortMe(high) = Temp
low = low + 1
high = high - 1
End If
Wend
If (lowbound < high) Then
Call QuickSort(SortMe(), lowbound, high)
End If
If (low < hibound) Then
Call QuickSort(SortMe(), low, hibound)
End If
End Sub

Share: 

 

This Question has 1 more answer(s). View Complete Question Thread

 
Didn't find what you were looking for? Find more on How do I sort an array? Or get search suggestion and latest updates.


Tagged: