2

小計関数を適用し、結果のデータを降順で並べ替えたいデータがあります。これまでのところ、コードで小計関数を適用し、ビューを変更して、並べ替えたい列のみが表示されるようにすることができました。この時点で .Sort メソッドを使用して、表示されているデータのみを並べ替える方法がわかりません。

小計を実装するための私のコード:

xcel.Range range = excelWorksheet.UsedRange;
        range.Subtotal(1, Excel.XlConsolidationFunction.xlSum, Type.Missing, (object)true, (object)false, Excel.XlSummaryRow.xlSummaryBelow);

ビューを並べ替えたい列だけに変更する私のコード:

excelWorksheet.Outline.ShowLevels(2, Type.Missing);

この時点で、考えられるほぼすべての範囲を使用して、.Sort メソッドのさまざまなバリエーションを試しました (可視範囲、必要な列を明示的に指定する、ワークシート全体、小計フィルターの前に使用される範囲、使用される範囲小計フィルターの後)。また、Excel 内にマクロを記録しようとしましたが、それを C# に変換する方法がわかりません。

私が必要とすることを正確に行うExcelマクロは次のとおりです。

Range("G3").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("G3"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A2:G2853")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

小計のグループ化が適用された後にデータを並べ替える方法を知っている人はいますか?

4

1 に答える 1