我先将字符串转化为26进制的数字,再化成10进制,然后比较大小。下面是aru,kuh,amo的排序代码。
Private Type mine
   a As String
   b As String
   c As String
End TypePrivate Sub Command1_Click()
Dim state As Integer
Dim abc(3) As mine
Dim n(3), na(3), nb(3), nc(3) As Single
state = 0
abc(1).a = "a"
abc(1).b = "r"
abc(1).c = "u"
abc(2).a = "k"
abc(2).b = "u"
abc(2).c = "h"
abc(3).a = "a"
abc(3).b = "m"
abc(3).c = "o"
For z = 1 To 3
    Select Case abc(z).a
      Case "a"
        na(z) = 1
      Case "b"
        na(z) = 2
      Case "c"
        na(z) = 3
      Case "d"
        na(z) = 4
      Case "e"
        na(z) = 5
      Case "f"
        na(z) = 6
      Case "g"
        na(z) = 7
      Case "h"
        na(z) = 8
      Case "i"
        na(z) = 9
      Case "j"
        na(z) = 10
      Case "k"
        na(z) = 11
      Case "l"
        na(z) = 12
      Case "m"
        na(z) = 13
      Case "na"
        na(z) = 14
      Case "o"
        na(z) = 15
      Case "p"
        na(z) = 16
      Case "q"
        na(z) = 17
      Case "r"
        na(z) = 18
      Case "s"
        na(z) = 19
      Case "t"
        na(z) = 20
      Case "u"
        na(z) = 21
      Case "v"
        na(z) = 22
      Case "w"
        na(z) = 23
      Case "x"
        na(z) = 24
      Case "y"
        na(z) = 25
      Case "z"
        na(z) = 26
    End Select
    Select Case abc(z).b
      Case "a"
        nb(z) = 1
      Case "b"
        nb(z) = 2
      Case "c"
        nb(z) = 3
      Case "d"
        nb(z) = 4
      Case "e"
        nb(z) = 5
      Case "f"
        nb(z) = 6
      Case "g"
        nb(z) = 7
      Case "h"
        nb(z) = 8
      Case "i"
        nb(z) = 9
      Case "j"
        nb(z) = 10
      Case "k"
        nb(z) = 11
      Case "l"
        nb(z) = 12
      Case "m"
        nb(z) = 13
      Case "nb"
        nb(z) = 14
      Case "o"
        nb(z) = 15
      Case "p"
        nb(z) = 16
      Case "q"
        nb(z) = 17
      Case "r"
        nb(z) = 18
      Case "s"
        nb(z) = 19
      Case "t"
        nb(z) = 20
      Case "u"
        nb(z) = 21
      Case "v"
        nb(z) = 22
      Case "w"
        nb(z) = 23
      Case "x"
        nb(z) = 24
      Case "y"
        nb(z) = 25
      Case "z"
        nb(z) = 26
    End Select
    Select Case abc(z).c
      Case "a"
        nc(z) = 1
      Case "b"
        nc(z) = 2
      Case "c"
        nc(z) = 3
      Case "d"
        nc(z) = 4
      Case "e"
        nc(z) = 5
      Case "f"
        nc(z) = 6
      Case "g"
        nc(z) = 7
      Case "h"
        nc(z) = 8
      Case "i"
        nc(z) = 9
      Case "j"
        nc(z) = 10
      Case "k"
        nc(z) = 11
      Case "l"
        nc(z) = 12
      Case "m"
        nc(z) = 13
      Case "nc"
        nc(z) = 14
      Case "o"
        nc(z) = 15
      Case "p"
        nc(z) = 16
      Case "q"
        nc(z) = 17
      Case "r"
        nc(z) = 18
      Case "s"
        nc(z) = 19
      Case "t"
        nc(z) = 20
      Case "u"
        nc(z) = 21
      Case "v"
        nc(z) = 22
      Case "w"
        nc(z) = 23
      Case "x"
        nc(z) = 24
      Case "y"
        nc(z) = 25
      Case "z"
        nc(z) = 26
    End Select
    n(z) = na(z) + nb(z) / 26 + nc(z) / 16 ^ 2
Next z
10 For z = 1 To 3
       If n(z) <= n(1) And n(z) <= n(2) And n(z) <= n(3) And n(z) <> 1E+22 Then
          n(z) = 1E+22
          Form1.Print abc(z).a; abc(z).b; abc(z).c
          state = state + 1
       End If
   Next z
If state <> 3 Then GoTo 10
End Sub