Thread: Array question
View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
vqthomf vqthomf is offline
external usenet poster
 
Posts: 104
Default Array question

Thanks for the help.
Regards
Charles

"Bob Phillips" wrote:

Here is a bubble sort to sort on the first row ("column" in your transposed
array)
Function SortArray(myArray)
Dim temp, i, j, i
For i = LBound(myArray, 2) To UBound(myArray, 2) - 1
For j = i + 1 To UBound(myArray, 2)
If myArray(1, i) myArray(1, j) Then '<<<<<<<<<<<<<<<<<<<<< HERE
For k = LBound(myArray, 1) To UBound(myArray, 1)
temp = myArray(k, i)
myArray(k, i) = myArray(k, j)
myArray(k, j) = temp
Next
End If
Next
Next
SortArray = myArray
End Function

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"vqthomf" wrote in message
...
Change the to< to what?
Regards
Charles

"Bob Phillips" wrote:

Just change the to < in the 5th line of the function.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"vqthomf" wrote in message
...
Thanks is it possible to do it in desc order?
regards
Charles

"Tom Ogilvy" wrote:

if you want to use a dynamic array and redim preserve, then you will
have to
use the approach you show.

Here is a bubble sort to sort on the first row ("column" in your
transposed
array)
Function SortArray(myArray)
Dim temp, i, j, i
For i = LBound(myArray, 2) To UBound(myArray, 2) - 1
For j = i + 1 To UBound(myArray, 2)
If myArray(1, i) myArray(1, j) Then
For k = LBound(myArray, 1) To UBound(myArray, 1)
temp = myArray(k, i)
myArray(k, i) = myArray(k, j)
myArray(k, j) = temp
Next
End If
Next
Next
SortArray = myArray
End Function

Here is a test function used to test it.
Put random data in A1:F2, then run the Tester macro

Sub Tester()
Dim myArray
myArray = Range("A1:F3").Value
myArray = SortArray(myArray)
Range("A1:F3") = myArray
End Sub

--
Regards,
Tom Ogilvy

"vqthomf" wrote:

I am having a problem with arrays I am trying to add to an array

with
3
columns, I had to use the code below but how can I sort it by the
first
column or is there another way of populating the array
Regards
Charles

ElimentCount = ElimentCount + 1
ReDim Preserve myArray(1 To 3, 1 To ElimentCount)

myArray(1, ElimentCount) = vqSize
myArray(2, ElimentCount) = vqRoot
myArray(3, ElimentCount) = fName