如何使用 vb.net 以编程方式对 Excel 中的列进行排序?

Posted

技术标签:

【中文标题】如何使用 vb.net 以编程方式对 Excel 中的列进行排序?【英文标题】:How to sort columns in Excel programmatically using vb.net? 【发布时间】:2010-10-08 07:50:33 【问题描述】:

我们正在生成一个 Excel 报告,我们需要在保存文件之前以编程方式对数据进行排序。

是否可以使用 vb.net 以编程方式对 Excel 文件的特定列进行排序?

根据您的建议,为了生成对特定列进行排序的 excel 报告,我刚刚实现了如下逻辑..

Dim MyRange As Excel.Range
  gobjExcelReportSheet.Activate()
      MyRange = gobjExcelReportSheet.Range("A8", "L8")
      MyRange.Select()
      MyRange.Sort(Key1:=MyRange.Range("L8"), _
                   Order1:=XlSortOrder.xlAscending, _
                   Header:=XlYesNoGuess.xlGuess, _
                   MatchCase:=False, _
                   Orientation:=XlSortOrientation.xlSortColumns)

我在保存文件之前尝试了这个逻辑,甚至在保存文件之后,但它没有给出任何结果,即排序结果,甚至我没有收到任何错误。

但是下面的代码可以工作......

gobjExcelReportSheet.Application.Selection.Autofilter()

但是没有以编程方式排序的选项。

请帮帮我...

谢谢!

【问题讨论】:

报告是使用 Office 互操作程序集生成的吗?如果你给出你正在做什么的代码示例,你就更有可能得到有价值的回应。 【参考方案1】:

假设您使用的是互操作程序集,我就是这样做的:

Dim myWorkSheet As Excel.Worksheet = myWorkbook.Worksheets(aSheetName)
myWorkSheet.Activate()
Dim myRange As Excel.Range

myRange = myWorkSheet.Range("A1", "L10")
myRange.Select()


myRange.Sort(Key1:=myRange.Range("D1"), _
                        Order1:=Excel.XlSortOrder.xlAscending, _
                        Orientation:=Excel.XlSortOrientation.xlSortColumns)

基本上你需要选择一个范围(在本例中为A1:L10,然后选择按某一列(D)对其进行排序。

【讨论】:

我已经实现了这个,但是我得到了预期的结果,甚至没有得到任何错误。我需要做任何其他设置吗?请建议。谢谢。 我认为你的意思是你没有得到预期的结果?如果是这样,那么我们需要更多的信息。请编辑您的问题,显示您到目前为止所做的工作。 大家好,现在它使用以下代码.... MyRange.Range("A8").Sort(Key1:=MyRange.Range("L8"), Order1:=XlSortOrder.xlAscending , Header:=XlYesNoGuess.xlGuess, MatchCase:=False, Orientation:=XlSortOrientation.xlSortColumns) 以及上面提到的其他行。谢谢。 好。那么,赞成和/或接受的答案(提示,单击勾号)会很好吗? ;) 谢谢。这与代表无关,它可以帮助每个人知道它是否是正确的答案。

以上是关于如何使用 vb.net 以编程方式对 Excel 中的列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

从 VB.net 以编程方式命名 Excel 工作簿

C#/VB.NET 如何在 Excel 中添加水印

Vb.net 如何以编程方式选择选项卡控件中的最后一个选项卡

如何选择使用 VB.NET 打开的 Excel 版本?

使用 vb.net 以编程方式将 Access 数据库从 03 转换为 07?

vb.net bindingSource 和 bindingNavigation 以编程方式