本帖最后由 micch 于 2023-7-26 19:25 编辑
不知道社会是哪科,先简单写一个总排名吧,其他排名按同样的模式,加参数就可以实现。注意用优先级逆序排就行- Sub Main()
- With Sheet1.Range("a1").CurrentRegion
- br = Array(8, 9, 7, 5, 6, 12)
- For j = 0 To 5
- .Sort .Cells(1, br(j)), xlDescending, , , , , , xlYes
- Next
- ar = .Value
- For i = 2 To UBound(ar)
- bl = True
- For j = 0 To 5
- If ar(i, br(j)) <> ar(i - 1, br(j)) Then
- bl = False
- Exit For
- End If
- Next
- If bl Then
- ar(i, 13) = ar(i - 1, 13)
- Else
- ar(i, 13) = Val(ar(i - 1, 13)) + 1
- End If
- Next
- .Value = ar
- .Sort .Cells(1, 4), xlAscending, , , , , , xlYes
- End With
- End Sub
复制代码 |