Using this code will rewrite all the rows in MS Flex Grid and it supports alphanumeric as well as numeric sorts for specified columns.
Good Luck!
Option ExplicitPublic Sub QSort(Grid As MSFlexGrid, ByVal Column As Integer, ByVal min AsLong, _ ByVal max As Long, ByVal Ascending As Boolean, ByVal NumComp As Boolean) Dim tmp() ' when swap rows keep copy here ReDim tmp(Grid.Cols) Dim med_value, hi As Long, lo As Long, i As Integer If min >= max Then Exit Sub med_value = Grid.TextMatrix(min, Column) SaveRow Grid, min, tmp lo = min hi = max Do Do While Compare(Grid.TextMatrix(hi, Column), med_value, NumComp, Ascending) >= 0 hi = hi - 1 If hi <= lo Then Exit Do Loop If hi <= lo Then RestoreRow Grid, lo, tmp Exit Do End If For i = 0 To Grid.Cols - 1 Grid.TextMatrix(lo, i) = Grid.TextMatrix(hi, i) Next i lo = lo + 1 Do While Compare(Grid.TextMatrix(lo, Column), med_value, NumComp, Ascending) < 0 lo = lo + 1 If lo >= hi Then Exit Do Loop If lo >= hi Then lo = hi RestoreRow Grid, hi, tmp Exit Do End If For i = 0 To Grid.Cols - 1 Grid.TextMatrix(hi, i) = Grid.TextMatrix(lo, i) Next i Loop QSort Grid, Column, min, lo - 1, Ascending, NumComp QSort Grid, Column, lo + 1, max, Ascending, NumCompEnd SubPrivate Function Compare(ByVal X, ByVal Y, ByVal NumComp As Boolean, _ ByVal Ascending As Boolean) As Integer Dim b As Integer If NumComp Then X = CDbl(X) Y = CDbl(Y) End If If X > Y Then b = 1 If X < Y Then b = -1 If X = Y Then b = 0 If Not Ascending Then b = -b Compare = bEnd FunctionPrivate Sub RestoreRow(Grid As MSFlexGrid, ByVal RowNum As Long, tmpArr()) Dim i As Long For i = 0 To Grid.Cols - 1 Grid.TextMatrix(RowNum, i) = tmpArr(i) Next iEnd SubPrivate Sub SaveRow(Grid As MSFlexGrid, ByVal RowNum As Long, tmpArr()) Dim i As Long For i = 0 To Grid.Cols - 1 tmpArr(i) = Grid.TextMatrix(RowNum, i) Next iEnd Sub'Call qsort function to sort'msflexgrid is a reference to gridcontrol you want to sort'column is by which column to sort by.'min and max are the rows to sort.'ascending is a bolean for ascending or descending sort'NumComp is a boolean whether it's a numeric search or alphanumeric