I am trying to do a sort in Ascending orderhowever the below code will only sort in Descending order
can someone tell me what I am doing wrong
Function sortValuesAscending(varValues As Variant) As Variant
On Error Goto errHandler
Dim k As Integer
Dim i As Integer
Dim j As Integer
Dim h As Integer
Dim r As Integer
Dim memberArray() As String
Dim temp As String
Dim v1, v2 As Double
'-- Build an array of values to sort
For k = 0 To Ubound(varValues)
Redim Preserve memberArray(1 To k + 1)
memberArray(k + 1) = Cstr(varValues(k))
Next
'-- Set up for Shell sort algorithm
h = 1
Do While h < k
h = (h * 3) + 1
Loop
h = (h - 1) / 3
If h > 3 Then
h = (h - 1) / 3
End If
'-- Shell sort algorithm
Do While h > 0
For i = 1 + h To k
temp = memberArray(i)
j = i - h
Do While j >0
If Me.strFieldType ="number" Then
v1=Val(Replace(Left(memberArray(j),10),",","."))
v2=Val(Replace(Left(temp,10),",","."))
If v1> v2 Then
memberArray(j + h) = memberArray(j)
memberArray(j) = temp
Else
Exit Do
End If
Else
If memberArray(j) < temp Then
memberArray(j + h) = memberArray(j)
memberArray(j) = temp
Else
Exit Do
End If
End If
j = j - h
Loop
Next i
h = (h - 1) / 3
Loop
'-- Return sorted values
sortValuesAscending = memberArray
bailOut:
Exit Function
errHandler:
Dim strMsg As String
strMsg = "Error #" & Err & Chr$(10) & Error$ & Chr$(10) & "Line #" & Erl & | in sub/function: "| & Lsi_info(2) & |"|
Msgbox strMsg, 16, "Unexpected error"
sortValuesAscending = "ERROR"
Resume bailOut
End Function