在VSTO中排列Range对象

在VSTO 2010 Excel中, Range.Sort方法似乎不适用于我。 这是我的示例代码。 它将数字1到20以相反的顺序放在列A中,然后尝试对它们进行sorting。

 Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet; Enumerable.Range(1, 20).ToList().ForEach(i => sheet.Cells[21 - i, 1] = i); sheet.Columns[1].Sort(); 

根据文档 ,没有参数的Sort将按升序sorting。 以防万一我试图指定Order1: XlSortOrder.xlAscending

我也试过了

sheet.Columns[1].Select().Sort();

先select列,但是这也不起作用。

我怎样才能sorting一个单元格的Range

我在VBA中尝试了你的方法,并且接收到错误“范围类的sorting方法失败”。

我通过传递范围作为方法的“Key1”参数来解决这个问题。 似乎多余,但它的作品。 以下是您应用相同修补程序的示例代码:

 Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet; Enumerable.Range(1, 20).ToList().ForEach(i => sheet.Cells[21 - i, 1] = i); sheet.Columns[1].Sort(sheet.Columns[1]);