就是比较ASC码,你把下面的代码区运行一下吧^v^.我刚运行过Option ExplicitPrivate Sub Command1_Click() Dim s(3) As String Dim i As Integers(0) = "北京" s(1) = "天津" s(2) = "上海" s(3) = "广州"For i = 0 To 3 Print s(i), Next Print For i = 0 To 3 Print AscB(s(i)), Next End Sub
还是有问题啊,看下面代码: Private Sub Form_Click() Dim a$(6) a(1) = "北京" a(2) = "上海" a(3) = "天津" a(4) = "广州" a(5) = "男男" a(6) = "女女" For i = 1 To 5 p = i For j = i + 1 To 6 If a(p) < a(j) Then p = j Next j If p <> i Then t = a(i): a(i) = a(p): a(p) = t Next i For i = 1 To 6 Print a(i), AscB(a(i)) Next i Print End Sub对字符"男"、"女"不适用的。
windows中有一项汉字的排序方法设置的,在“区域/语言选项”中找
Dim s(3) As String
Dim i As Integers(0) = "北京"
s(1) = "天津"
s(2) = "上海"
s(3) = "广州"For i = 0 To 3
Print s(i),
Next
Print
For i = 0 To 3
Print AscB(s(i)),
Next
End Sub
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。
?ascw("北")
21271
?ascw("上")
19978
?ascw("天")
22825
?ascw("广")
24191
从上面看出来系统是从unicode码的大小来判断的,因此得到楼主的结果
Private Sub Form_Click()
Dim a$(6)
a(1) = "北京"
a(2) = "上海"
a(3) = "天津"
a(4) = "广州"
a(5) = "男男"
a(6) = "女女"
For i = 1 To 5
p = i
For j = i + 1 To 6
If a(p) < a(j) Then p = j
Next j
If p <> i Then t = a(i): a(i) = a(p): a(p) = t
Next i
For i = 1 To 6
Print a(i), AscB(a(i))
Next i
Print
End Sub对字符"男"、"女"不适用的。