如何使用 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 如何以编程方式选择选项卡控件中的最后一个选项卡