This code sorts listview text columns but does not sort numeric columns properly. I appreciate any suggestions!

Code:
With ListView2
    .SortKey = ColumnHeader.Index - 1
    .Sorted = True
        If .SortOrder = lvwAscending Then
           .SortOrder = lvwDescending
        Else
           .SortOrder = lvwAscending
        End If
    .SortKey = ColumnHeader.Index - 1
End With