使用VBA进行排序操作?

时间:2011-08-01 06:17:20

标签: excel vba excel-vba excel-2007

如何使用VBA代码执行排序操作?是否有任何已定义的宏来执行该操作?

我必须按升序对列B进行排序,其中包含值。和C列,其中有日期和最新的时尚。

1 个答案:

答案 0 :(得分:5)

我非常建议您使用宏录音机。如果您在Excel中没有看到开发人员选项卡,请转到Excel选项,它应位于“热门”选项卡中。点击将其打开。

按录制宏,然后执行您要执行的操作(例如高亮显示列并按功能区上的排序并按升序排序),然后停止录制。进入VBA(Alt + F11)并查看生成的代码,以了解如何编写相同函数的语法。

例如,排序日期将产生如下内容:

Sub Macro1()
    Columns("F:F").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("F1:F5"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("F1:F5")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

由于您在运行宏时已经选择了要排序的列,因此可以将代码清理为以下内容:

Sub SortAscending()
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

排序日期可以使用相同的代码完成,因为它是升序:

诀窍是要记住,您不需要在已经选择的代码中选择范围。祝你好运并享受录音机的乐趣,它确实对这种情况有所帮助。

此外,有很多关于Excel VBA的书籍,我建议您在书店或数字处选择一本书。大多数书籍将引导您了解VBA基础知识,主要关键词,使用录音机,然后最终足够远,以便您可以编写自己的代码(录音机代码很难优化或完美,但很适合学习措辞) (语法)做一些工作表函数)。