Excel 数组中能直接排序提值吗

如题所述

Sub test()
cz = [f1] '读取要查找的行序号 如=88
ar = [h1:t901] '读取数据到数组ar
m = UBound(ar) '数据最大行数m

For j = 2 To UBound(ar, 2) '遍历各列
c = 1: t = ar(cz + 1, j) '统计c初始化=1 并读取要查找cz行对应列的值t
For i = 2 To m '遍历各行
t2 = ar(i, j) '读取值t2
If t2 <> "" Then If t2 < t Then c = c + 1 Else If t2 = t Then If i < cz Then c = c + 1
'如果不为空、且该值<查询值、或=查询值但序号<查找序号cz 则统计c+1
Next
[h1].Offset(, j - 1) = c '直接输出结果到工作表对应列的第1行
Next
End Sub
果你只是需要知道排序后的位置,那么可以直接在数组中遍历比较即可。
温馨提示:答案为网友推荐,仅供参考
相似回答