2011-07-15 17 views
0

範囲をソートしたいと思います。最初の行(Excelワークブックの行3)をソート必要列ヘッダーが含まれ、昇順に、左から右へ:C#Excel Range Sort

Excel.Range tempRange = ws.get_Range("F3", "H8"); 

tempRange.Sort(Type.Missing, 
        Excel.XlSortOrder.xlAscending, 
        Type.Missing, 
        Excel.XlSortOrder.xlAscending, 
        Excel.XlSortOrder.xlAscending, 
        Type.Missing, 
        Excel.XlSortOrder.xlAscending, 
        Excel.XlYesNoGuess.xlYes, 
        Type.Missing, 
        Type.Missing, 
        Excel.XlSortOrientation.xlSortColumns, 
        Excel.XlSortMethod.xlPinYin, 
        Excel.XlSortDataOption.xlSortNormal, 
        Excel.XlSortDataOption.xlSortNormal, 
        Excel.XlSortDataOption.xlSortNormal); 

をこれは、現在エラー「レンジクラスのソート方法が失敗」を生成します。

ソートメソッドの開始時にさまざまなパラメータを試しましたが、これは 'ソート参照が有効ではありません。ソートするデータの範囲内にあることを確認し、最初のソート・バイ・ボックスは同じでも空白でもないというエラー・メッセージが表示されます。

どこが間違っていますか?

同等のVBAは罰金作品:最初のパラメータ&がExcel.XlSortOrientation.xlSortRowsにオリエンテーションを設定するよう

With ActiveWorkbook.Worksheets("Sheet1").Sort 
    .SetRange Range("F3:H8") 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlLeftToRight 
    .SortMethod = xlPinYin 
    .Apply 
End With 

どうもありがとうございました

ジョー

答えて

1

私は範囲を述べました。

   tempRange.Sort(tempRange, 
        Excel.XlSortOrder.xlAscending, 
        Type.Missing, Type.Missing, 
        Excel.XlSortOrder.xlAscending, 
        Type.Missing, 
        Excel.XlSortOrder.xlAscending, 
        Excel.XlYesNoGuess.xlYes, 
        Type.Missing, 
        Type.Missing, 
        Excel.XlSortOrientation.xlSortRows, 
        Excel.XlSortMethod.xlPinYin, 
        Excel.XlSortDataOption.xlSortNormal, 
        Excel.XlSortDataOption.xlSortNormal, 
        Excel.XlSortDataOption.xlSortNormal); 

お役立ちリンク:

http://social.msdn.microsoft.com/Forums/en-US/exceldev/thread/a699d754-98d5-4241-87da-8761c520ba72/