Sort in Ascending

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

Subject: don’t understand your logic

So here’s an alternative - very simple sample to sort an array of numbers (stored as strings so that you can use the same logic for string array sorts)

Redim sArray(9) As String ' array to be sorted

Redim tArray(9) As String 'target array for results

Dim i As Integer, j As Integer, k As Integer

Dim j1 As Long

'populate the source array with numbers 0 < x < 1000

For i= 0 To Ubound(sArray)

	sArray(i) = Str$(1000*Rnd)

Next

'loop through the source array, looking for lowest value

For k=0 To Ubound(sArray)

	j1 = 1001

	j = 0

	For i = 0 To Ubound(sArray)

		If sArray(i) <> "Empty" Then 

			If Val(sArray(i))<j1 Then 

				j1 = Val(sArray(i))

				j=i

			End If

		End If

	Next

	'found the lowest - store it in the target array, and mark the source array element

	tArray(k) = j1

	sArray(j) = "Empty"

Next k