Tri d'un object Range dans VSTO

Dans VSTO 2010 dans Excel, la méthode Range.Sort ne semble pas fonctionner pour moi. Voici mon exemple de code. Il place les nombres de 1 à 20 dans l'ordre inverse dans la colonne A, puis essaye en vain de les sortinger.

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

Selon la documentation , le Sort avec aucun argument sortinger dans l'ordre croissant. Dans le cas où j'ai essayé de spécifier Order1: XlSortOrder.xlAscending .

J'ai également essayé

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

pour sélectionner la colonne en premier, mais cela ne fonctionnait pas non plus.

Comment puis-je sortinger une Range de cellules?

J'ai essayé votre approche dans VBA et j'ai reçu l'erreur "méthode de sorting de la class de plage échoué".

J'ai résolu cela en passant la gamme comme l'argument "Key1" de la méthode. Cela semble redondant, mais ça marche. Voici votre exemple de code avec le même correctif appliqué:

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