2012-03-23 11 views
0

さて、私はこれを十分に戦い、私が配列を並べ替えることができるようになった。私が今行う必要があるのは、次のコードを取得し、昇順ではなく降順で要素を並べ替えることです。私が正しくあなたの質問を理解していれば、あなたはソート結果を逆にして降順のソート順を実装することができますVB.NETランク並べ替えに基づくExcelの列

Dim Cols(3) As Int16 
Cols(0) = ColumnNumber + 1 
Cols(1) = ColumnNumber + 2 
Cols(2) = ColumnNumber + 3 
Cols(3) = ColumnNumber + 4 

Dim Vals(3) As Double 
Vals(0) = xlsWorkSheet.Cells(r, ColumnNumber + 1).value 
Vals(1) = xlsWorkSheet.Cells(r, ColumnNumber + 2).value 
Vals(2) = xlsWorkSheet.Cells(r, ColumnNumber + 3).value 
Vals(3) = xlsWorkSheet.Cells(r, ColumnNumber + 4).value 

Array.Sort(Vals, Cols) 

答えて

0

:私はコード内の2つの引数を持つことを行う方法を知りません。

ソート順を逆にするIComparerインスタンスを提供できる必要があります。

Public Class myReverserClass 
    Implements IComparer 

    ' Calls CaseInsensitiveComparer.Compare with the parameters reversed. 
    Function Compare(x As [Object], y As [Object]) As Integer _ 
     Implements IComparer.Compare 
     Return New CaseInsensitiveComparer().Compare(y, x) 
    End Function 'IComparer.Compare 

End Class 'myReverserClass 

そうのような逆ソート実行します。http://msdn.microsoft.com/en-us/library/system.array.sort(v=vs.71).aspx

:これを行うMSDN上の例があります

Dim myComparer = New myReverserClass() 
Array.Sort(Vals, Cols, myComparer) 

関連する問題