在 VSTO 中对 Range 对象进行排序

发布于 2025-01-08 13:09:23 字数 650 浏览 0 评论 0原文

在 Excel 的 VSTO 2010 中,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();

首先选择列,但这也不起作用。

如何对范围单元格进行排序?

In VSTO 2010 in Excel, the Range.Sort method doesn't seem to work for me. Here's my example code. It puts the numbers 1 to 20 in reverse order in column A, and then unsuccessfully tries to sort them.

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

According to the documentation, the Sort with no arguments will sort in ascending order. Just in case I tried specifying Order1: XlSortOrder.xlAscending.

I also tried

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

to select the column first, but this didn't work either.

How can I sort a Range of cells?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

靑春怀旧 2025-01-15 13:09:23

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

I tried your approach in VBA and receved the error "sort method of range class failed".

I resolved that by passing the range as the "Key1" argument of the method. Seems redundant, but it works. Here's your sample code with the same fix applied:

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]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文