|
发表于 2012-2-15 19:25
|
显示全部楼层
本楼为最佳答案
c888 发表于 2012-2-15 07:26
happym8888 您好!谢谢又能得到您的帮助。
有个问题请教下:第一:当成绩为空时,名次却判断为1。第二, ... - Private Sub CommandButton1_Click() '从小到大
- Happy 1
- End Sub
- Private Sub CommandButton2_Click() '从大到小
- Happy -1
- End Sub
- Sub Happy(ZoF As Integer)
- Dim i, j, Ar(1 To 8, 1 To 2), Temp, Temp2
- For i = 1 To 8
- Frame2.Controls(i - 1) = ""
- Next
- For i = 1 To 8
- Ar(i, 1) = Val(Frame1.Controls(i - 1).Text)
- Ar(i, 2) = i
- Next
- For i = 1 To 7
- For j = i + 1 To 8
- If ZoF * (Ar(i, 1) - Ar(j, 1)) > 0 Then
- Temp = Ar(i, 1): Temp2 = Ar(i, 2)
- Ar(i, 1) = Ar(j, 1): Ar(i, 2) = Ar(j, 2)
- Ar(j, 1) = Temp: Ar(j, 2) = Temp2
- End If
- Next j
- Next i
- j = 0
- For i = 1 To 8
- Frame2.Controls(Ar(i, 2) - 1) = i - j
- If Ar(i, 1) = 0 Then j = j + 1: Frame2.Controls(Ar(i, 2) - 1) = ""
- Next i
- For i = 1 To 7
- If Ar(i, 1) = Ar(i + 1, 1) Then
- Response = MsgBox("有相同数据,按并列名称排序?" & Chr(10) & "选择“确定”按并列名次排序?" & Chr(10) & "选择“取消”按目前形式排序", vbOKCancel)
- If Response = vbOK Then Frame2.Controls(Ar(i + 1, 2) - 1) = Frame2.Controls(Ar(i, 2) - 1) Else Exit For
- End If
- Next
- End Sub
复制代码
|
|