使用VBA进行排序操作?

nik*_*iko 0 excel vba excel-2007 excel-vba

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

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

aev*_*nko 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

诀窍是要记住,您不需要在已经选择的代码中选择范围.祝你好运,并在录音机上玩得很开心,在这样的情况下确实有所帮助.

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