Сортировка объекта Range в VSTO - PullRequest
1 голос
/ 24 февраля 2012

В VSTO 2010 в Excel метод Range.Sort, похоже, не работает для меня.Вот мой пример кода.Он помещает числа от 1 до 20 в обратном порядке в столбце A, а затем безуспешно пытается их отсортировать.

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

Согласно документации , Sort без аргументов будетсортировать по возрастанию.На всякий случай я попытался указать Order1: XlSortOrder.xlAscending.

Я также попытался

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

сначала выбрать столбец, но это тоже не сработало.

Как я могу отсортировать Range клеток?

1 Ответ

1 голос
/ 25 февраля 2012

Я попробовал ваш подход в VBA и получил ошибку "сбой метода сортировки класса диапазона".

Я решил это, передав диапазон в качестве аргумента «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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...