Attribute VB_Name = "等级排序"
'----------
'中考等级分一样的话如 /3C1D1E /2C3D / 都是27分,那个应排在前面, 显然3C应名列前位,但由于首数字
'3大,它通常被排到后面去了,但如果将该等级化作 /9CCCDE/9CCDDD/ 顺序排列即可解之 故设计如下函数.
(说明的是序号9为 27分36分的配数,可解不同等级分而设已。)
'--------- 邹维民 http://weimin.g2ck.com--------
Function DenjiPaixu(dj_x) As String
Dim M, I, J, FS, FSX As Integer
Dim Nb(5), FSC As String
Dim Na(5) As Integer
DenjiPaixu = ""
FSX = 0
M = Len(dj_x)
For I = 1 To M / 2
Na(I) = Mid(dj_x, 2 * I - 1, 1)
Nb(I) = Mid(dj_x, 2 * I, 1)
Select Case Nb(I)
Case "A"
FS = 8
Case "B"
FS = 7
Case "C"
FS = 6
Case "D"
FS = 5
Case "E"
FS = 4
Case "F"
FS = 3
Case "G"
FS = 2
Case "H"
FS = 1
End Select
FSX = FSX + Na(I) * FS
Next I
For J = 1 To M / 2
For K = 1 To Na(J)
DenjiPaixu = DenjiPaixu & Nb(J)
Next K
Next J
FSX = 36 - FSX
If FSX < 10 Then
FSC = Trim(Str(0)) & Trim(Str(FSX))
Else
FSC = Trim(Str(FSX))
End If
DenjiPaixu = FSC & DenjiPaixu
End Function