|
可以,代码要长一些。- Sub 排名()
- crr = Array("总排一", "总排二", "总排三", "总排四", "总排五", "总排六")
- Dim arr(1 To 6, 1 To 2)
- For i = 126 To 131 '把得分和排名放到一个数组里
- n = n + 1
- arr(n, 1) = Me.Controls("Textbox" & i)
- arr(n, 2) = crr(n - 1)
- Next
-
- For i = 1 To 5 '对数组排序
- For j = i + 1 To 6
- x = arr(i, 1)
- Y = arr(j, 1)
- If Val(x) < Val(Y) Then
- tmp = arr(i, 1): arr(i, 1) = arr(j, 1): arr(j, 1) = tmp
- tmp = arr(i, 2): arr(i, 2) = arr(j, 2): arr(j, 2) = tmp
- End If
- Next
- Next
-
- tmp = arr(1, 1): n = 1 '排名,考虑相同名次情况
- For i = 1 To 6
- x = arr(i, 1)
- If Len(x) > 0 Then
- If Val(x) < Val(tmp) Then n = n + 1
- Me.Controls(arr(i, 2)) = n
- tmp = arr(i, 1)
- End If
- Next
-
- For i = 1 To 6 '输出第1名和最后一名的组名
- If Len(arr(i, 2)) > 0 Then
- If Val(Me.Controls(arr(i, 2))) = n Then xmin = xmin & Right(arr(i, 2), 1)
- If Val(Me.Controls(arr(i, 2))) = 1 Then xmax = xmax & Right(arr(i, 2), 1)
- End If
- Next
- Me.TextBox124 = xmax
- Me.TextBox125 = xmin
- End Sub
复制代码 |
|