在 32-bit 版本的 VB 底下, 将每一个字符都视为两个 Byte, 所以 Len("中英Mixed") 等于 7 LenB("中英Mixed") 等于 14 但是在很多场合底下, 我们希望中文字长度以 2 计算, 英文字母长度以 1 计算, 此时使用的方法如下: ' 欲计算字串 S 的长度 N = 0 For I = 1 To Len(S) C = Asc(Mid(S, I, 1)) ' 取得第 I 个字符组的字符码 If C >= 0 And C <128 Then ' 英文 N = N + 1 Else ' 中文 N = N + 2 End If Next 看起来程序有点罗唆, 如果您不喜欢这个方法, 可以使用 Windows API 的 lstrlen 函数, 假设假计算 S 的长度, 则 API 声明式如下: Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long 而调用的叙述则是: n = lstrlen("中英Mixed" + Chr(0)) Print n ' n 将等于 9 请注意调用 lstrlen 时必须加上 Chr(0), 因为此一函数是根据 Chr(0) 来判断字串的结束。 调用 lstrlen 除了程序比较简短之外, 速度也比我们写 VB 程序判断中英文字然后计算长度来的快。