sort descending order vba

在 VBA 中,要按降序(从大到小)对数组或范围中的值进行排序,可以使用内置的 Sort 函数并指定排序的参数为 xlDescending ,如下所示:

Sub SortDescending()
    Dim arr(1 To 5) As Integer
    Dim i As Integer
    ' 填充数组
    arr(1) = 3
    arr(2) = 5
    arr(3) = 1
    arr(4) = 4
    arr(5) = 2
    ' 按降序排序数组
    Call SortArrayDescending(arr)
    ' 输出排序后的数组
    For i = 1 To 5
        Debug.Print arr(i)
    Next i
End Sub
Sub SortArrayDescending(ByRef arr() As Integer)
    ' 使用 VBA 的内置 Sort 函数对数组进行排序,参数为 xlDescending
    Call VBA.Sort(arr, MatchCase:=False, Order:=xlDescending)
End Sub

在上面的示例中,首先创建了一个包含 5 个整数值的数组 arr,然后调用了名为 SortArrayDescending 的子程序来对数组进行降序排序。在 SortArrayDescending 中,我们调用了 VBA 的内置 Sort 函数,并将排序参数设置为 xlDescending,这将使其按从大到小的顺序对数组进行排序。

最后,在主程序 SortDescending 中,我们调用了 SortArrayDescending 子程序来对数组进行排序,并使用 Debug.Print 函数将排序后的数组输出到控制台上。

如果你要按照降序对 Excel 工作表中的单元格进行排序,也可以使用类似的方法,并将范围作为参数传递给 Sort 函数,如下所示:

Sub SortDescending()
    Dim rangeToSort As Range
    ' 获取要排序的范围
    Set rangeToSort = ActiveSheet.Range("A1:A5")
    ' 按降序排序范围
    Call SortRangeDescending(rangeToSort)
End Sub
Sub SortRangeDescending(ByRef rangeToSort As Range)
    ' 使用 VBA 的内置 Sort 函数对范围进行排序,参数为 xlDescending
    Call rangeToSort.Sort(Key1:=rangeToSort, Order1:=xlDescending, Header:=xlNo)
End Sub

在上面的示例中,我们首先获取要排序的范围,然后调用了名为 SortRangeDescending 的子程序来对范围进行降序排序。在 SortRangeDescending 中,我们同样使用 VBA 的内置 Sort 函数,并将排序参数设置为 xlDescending,这将使其按从大到小的顺序对范围中的值进行排序。注意,我们还将 Header 参数设置为 xlNo,以确保不将表头包含在排序中。

  •