Home |
Search |
Today's Posts |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greg,
Try this: Sub BubbleSort2D(iArray As Variant) 'Sorts the iArray in ascending order Dim First As Integer, Last As Integer Dim lTemp As Variant Dim j As Integer, i As Integer, k As Integer First = LBound(iArray, 1) Last = UBound(iArray, 1) FirstCol = LBound(iArray, 2) Lastcol = UBound(iArray, 2) For i = First To Last - 1 For j = i + 1 To Last If iArray(i, 1) iArray(j, 1) Then For k = FirstCol To Lastcol lTemp = iArray(j, k) iArray(j, k) = iArray(i, k) iArray(i, k) = lTemp Next k End If Next j Next i End Sub Sub test() Dim arr() As Variant arr = Range("a1:D20") BubbleSort2D arr Range("a1:D20") = arr End Sub "Greg" wrote: Hi, Here is a bubble sort for an array in ascending order I've taken from J-Walk book. Could some one help my modify it to sort a 2D array based on 1st row(column)? I only need an ascending order, and I think if it only sorts horizontal array I'd be fine as well. Your help is very much appreciated. VBA: Sub BubbleSortNumbers(iArray As Variant) 'Sorts the iArray in ascending order Dim First As Single, Last As Single Dim lTemp As Single Dim j As Integer, i As Integer First = LBound(iArray) Last = UBound(iArray) For i = First To Last - 1 For j = i + 1 To Last If iArray(i) iArray(j) Then lTemp = iArray(j) iArray(j) = iArray(i) iArray(i) = lTemp End If Debug.Print i, iArray(i) Debug.Print j, iArray(j) Next j Next i End Sub -- ______ Regards, Greg |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
sort an array | Excel Programming | |||
Array sort | Excel Programming | |||
Array... Sort of... | Excel Worksheet Functions | |||
Sort an Array | Excel Programming | |||
sort an array | Excel Programming |