c# Excel区域排序

本文关键字:排序 区域 Excel | 更新日期: 2023-09-27 18:02:06

我想排序一个范围。第一行(Excel工作簿中的第3行)包含列标题,需要按升序从左到右排序:

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);

当前生成错误"Range类的Sort方法失败"。

我在排序方法的开始尝试了各种参数,但这产生了"排序引用无效"。请确保它在您想要排序的数据内,并且第一个sort By框不是相同的或空白的错误消息。

我哪里错了?

等效的VBA工作正常:

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

Thanks very much

c# Excel区域排序

我将Range作为第一个参数&设置方向为excel . xlsororientation . xlsortrows .

                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 - 98 d5 - 4241 - 87 - da - 8761 c520ba72/