Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
hi i have this bubblesort sub - Code: -------------------- Sub BubbleSort(List() As Integer) Dim First As Integer, Last As Integer Dim i As Integer, j As Integer Dim Temp As Integer First = LBound(List) Last = UBound(List) For i = First To Last - 1 For j = i + 1 To Last If List(i) List(j) Then Temp = List(j) List(j) = List(i) List(i) = Temp End If Next j Next i End Sub -------------------- but at the moment it sorts all the elements in ascending order, and i need it biggest element first ie. descending... any idea how i change it, i guess it would be simple but i suppose it may need completely rewriting thanks jimmyp -- jimmyp ------------------------------------------------------------------------ jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217 View this thread: http://www.excelforum.com/showthread...hreadid=522186 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
Hi
try changing the test If List(i) List(j) to If List(i) < List(j) (untested) Paul |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
i tried that - it almost works :) but misses of the largest element, ie the one that should be at the start...the rest are all in descending order though -- jimmyp ------------------------------------------------------------------------ jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217 View this thread: http://www.excelforum.com/showthread...hreadid=522186 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
It should work as demonstrated he
Sub BubbleDown() Dim First As Integer, Last As Integer Dim i As Integer, j As Integer Dim Temp As Integer List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) First = LBound(List) Last = UBound(List) For i = First To Last - 1 For j = i + 1 To Last If List(i) < List(j) Then Temp = List(j) List(j) = List(i) List(i) = Temp End If Next j Next i For i = First To Last Debug.Print i, List(i) Next End Sub -- Regards, Tom Ogilvy "jimmyp" wrote: i tried that - it almost works :) but misses of the largest element, ie the one that should be at the start...the rest are all in descending order though -- jimmyp ------------------------------------------------------------------------ jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217 View this thread: http://www.excelforum.com/showthread...hreadid=522186 |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
tom essentially thats the same as what i posted except you have 'List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)' whereas i pass in my array from another sub. Thing is its still missing the first element, but if i change back to then it displays all the elements, just in the wrong order... its odd the only thing i change is the <. -- jimmyp ------------------------------------------------------------------------ jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217 View this thread: http://www.excelforum.com/showthread...hreadid=522186 |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
sort function - from ascending to descending
that is correct - I was showing you that it does work to reverse the order of
an array. The only problem I can think of is that you recalcitrant value is being stored as a string rather than a number. As long as the string is never moved, you won't get an error. If your code does try to move it, then it will raise an error since temp is Dim'd as Integer. -- Regards, Tom Ogilvy "jimmyp" wrote: tom essentially thats the same as what i posted except you have 'List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)' whereas i pass in my array from another sub. Thing is its still missing the first element, but if i change back to then it displays all the elements, just in the wrong order... its odd the only thing i change is the <. -- jimmyp ------------------------------------------------------------------------ jimmyp's Profile: http://www.excelforum.com/member.php...o&userid=32217 View this thread: http://www.excelforum.com/showthread...hreadid=522186 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Column sort with Ascending / Descending Arrows | Excel Worksheet Functions | |||
Ascending Sort formula, change to neg #: descending sort.. | Excel Discussion (Misc queries) | |||
How to sort out (ascending or descending) automatically a list | Excel Worksheet Functions | |||
Sort other than by alphabetical ascending/ descending | Excel Discussion (Misc queries) | |||
how can I hide sort ascending and sort descending options in the . | Excel Discussion (Misc queries) |