Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4379|回复: 3

求助 如何在vb中实现一列数据的降序排列

[复制链接]
发表于 2019-5-25 14:22 | 显示全部楼层 |阅读模式
1学分
编程小白一枚 求助各位大神!想要对平时总评进行降序排列 然后其他的信息也跟着变换 请问应该怎么写呀?

拜托了 谢谢~~

成绩记录器.zip

25.33 KB, 下载次数: 8

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2019-5-25 14:24 | 显示全部楼层
还需要增加一个最高分和最低分功能 求助~~
回复

使用道具 举报

发表于 2019-5-27 09:34 | 显示全部楼层
Application.ScreenUpdating = False
Dim arr(1000, 2)
s1 = [a1000].End(3).Row - 4
For i = 1 To s1
    arr(i, 1) = Cells(i + 4, 18)
    arr(i, 2) = i + 4
Next i
For i = 1 To s1
    For k = i + 1 To s1
        If arr(i, 1) < arr(k, 1) Then
           s2 = arr(i, 1)
           s3 = arr(i, 2)
           arr(i, 1) = arr(k, 1)
           arr(i, 2) = arr(k, 2)
           arr(k, 1) = s2
           arr(k, 2) = s3
        End If
    Next k
Next i
Dim arr1(1000, 18)
For i = 1 To s1
    For k = 1 To 18
        arr1(i, k) = Cells(arr(i, 2), k)
    Next k
Next i
For i = 1 To s1
    For k = 1 To 18
        Cells(i + 4, k) = arr1(i, k)
    Next k
Next i
Application.ScreenUpdating = True

最高分和最低分可以用工作表函数min和max直接得到,当然代码也可以做。我不知道该放在哪个地方,所以也没弄它。
回复

使用道具 举报

发表于 2019-5-27 11:58 | 显示全部楼层
降序
Range("b5:r21").Sort key1:=Range("r5"), order1:=xlDescending
升序
Range("b5:r21").Sort key1:=Range("r5"), order1:=xlAscending


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 11:48 , Processed in 0.345276 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表