我有要应用小计函数的数据,然后按降序对结果数据进行排序。到目前为止,我已经设法让我的代码应用小计函数,然后更改视图,以便它只显示我想要排序的列。我现在无法弄清楚如何使用 .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
有谁知道在应用小计分组后如何对数据进行排序?