c语言0828数组的排序,Excel 通用数组排序

'通用数组排序 - 自定义函数Array_Sort(支持二维或一维)---by 泓()

Function Array_Sort(Array_, Key1, Order)    '(Array_[将要排序的数组], Key1[垂直数组(y,x)中x,像表格中的哪一列作关键字], Order[=1,升序;<>1,降序])

Dim t, x&, y&, i&, j&, k&, xx&, yy&, tt&, AD&

For i = 1 To 60

On Error Resume Next

Err.Clear

tt = UBound(Array_, i)

If Err.Number = 9 Then AD = i - 1: Exit For    'AD,数组维数

Next

If AD = 2 Then

If Not (Key1 >= LBound(Array_, 2) And Key1 <= UBound(Array_, 2)) Then Exit Function

ElseIf AD = 1 Then

Array_ = Application.Transpose(Array_)

Key1 = 1

Else

Exit Function

End If

y = LBound(Array_, 1): x = LBound(Array_, 2)

yy = UBound(Array_): xx = UBound(Array_, 2)

If Order = 1 Then    '升序

For i = y To yy - 1

For j = i + 1 To yy

If Array_(j, Key1) < Array_(i, Key1) Then    '冒泡排序法

For k = x To xx

t = Array_(j, k): Array_(j, k) = Array_(i, k): Array_(i, k) = t

Next

End If

Next

Next

Else    '降序

For i = y To yy - 1

For j = i + 1 To yy

If Array_(j, Key1) > Array_(i, Key1) Then

For k = x To xx

t = Array_(j, k): Array_(j, k) = Array_(i, k): Array_(i, k) = t

Next

End If

Next

Next

End If

If AD = 2 Then Array_Sort = Array_ Else Array_Sort = Application.Transpose(Array_)

End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值