在VBA中对2维变体数组进行排序

时间:2015-04-13 16:00:04

标签: vba excel-vba excel

我是VBA的新手(我希望我能坚持使用Javascript),我对排序数组有疑问。 我有这个二维数组来跟踪像这样的球员得分

P1 P2 P3 P4 P5 P6 P7 P8 P9
23 12 34 11 21 56 32 35 27

我想对数组进行排序,以便玩家按照从最低到最高的分数顺序排列

P4 P2 P5 P1 P9 P7 P3 P8 P6
11 12 21 23 27 32 34 35 56

我还不知道如何在VBA中执行此操作。我试着找一个排序功能,但无济于事。我需要包含一些库吗?

如果没有可用的库,有谁知道如何解决这个问题?

此致 Crouz

2 个答案:

答案 0 :(得分:1)

将数据放入 A1 I2

然后运行此宏:

Sub Macro4()
    Range("A1:I2").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:I2"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:I2")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

注意:

这是宏记录器。

答案 1 :(得分:-1)

我查了一下,果然,一些SO冠军已经在VBA中组合了QuickSort例程。这是一个链接:

VBA array sort function?