‘写了个比较大小写的程序,主要是利用asc码来比较,结果是abcd》Abcd Function strCompByAsc(str1, str2) As Integer Dim i As Integer Dim LetterA, LetterB As Integer '要比较的字符串的asc码 Dim length As Integer '比较2个字符串的长度,得到字符串长度的最小值 length = IIf(Len(str1) >= Len(str2), Len(str2), Len(str1)) For i = 1 To length '逐个比较ascii码 LetterA = Asc(Mid(str1, i, 1)) LetterB = Asc(Mid(str2, i, 1))
If LetterA > LetterB Then '前面的小 strCompByAsc = 1 Exit Function ElseIf LetterA < LetterB Then '前面的大 strCompByAsc = -1 Exit Function End If Next
'如果前面都一样,那么长的那个字符大 If Len(str2) < Len(str1) Then strCompByAsc = 1 ElseIf Len(str2) > Len(str1) Then strCompByAsc = -1 Else strCompByAsc = 0 End IfEnd Function
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。
返回 Variant (Integer),为字符串比较的结果。
StrComp(string1, string2[, compare])
StrComp 函数的语法有下面的命名参数:
string1 必要参数。任何有效的字符串表达式。
string2 必要参数。任何有效的字符串表达式。
Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。
返回值StrComp 函数有下列返回值:如果 StrComp 返回
string1 小于 string2 -1
string1 等于 string2 0
string1 大于 string2 1
string1 或 string 2为 Null Null
b="ab"
if a=b then
....
elseend if
Function strCompByAsc(str1, str2) As Integer
Dim i As Integer
Dim LetterA, LetterB As Integer '要比较的字符串的asc码
Dim length As Integer
'比较2个字符串的长度,得到字符串长度的最小值
length = IIf(Len(str1) >= Len(str2), Len(str2), Len(str1))
For i = 1 To length
'逐个比较ascii码
LetterA = Asc(Mid(str1, i, 1))
LetterB = Asc(Mid(str2, i, 1))
If LetterA > LetterB Then '前面的小
strCompByAsc = 1
Exit Function
ElseIf LetterA < LetterB Then '前面的大
strCompByAsc = -1
Exit Function
End If
Next
'如果前面都一样,那么长的那个字符大
If Len(str2) < Len(str1) Then
strCompByAsc = 1
ElseIf Len(str2) > Len(str1) Then
strCompByAsc = -1
Else
strCompByAsc = 0
End IfEnd Function