|
本帖最后由 没树高 于 2019-7-28 21:18 编辑
求助各位高人,这有两个我头疼了好几天的问题:
一、VBA里的LenB函数为何会将英文字符返回两字节?
- Sub Test()
- Dim Str$, i%
- Str = "worse糟糕2a"
- For i = 1 To Len(Str)
- Debug.Print "CHAR=" & Mid(Str, i, 1) & "| I= " & i & "|LEN= " & _
- Len(Mid(Str, i, 1)) & "| LENB=" & LenB(StrConv(Mid(Str, i, 1), vbNarrow))
-
- Next i
- End Sub
复制代码 以上代码的返回结果如图一。为何数字和英文字母的字节都是2:
图一
问题一:如何在VBA中规避这个麻烦,
从而能像工作表函数Len和LenB的返回效果那样,用来处理含有中文和英文字符串。
(即怎样用VBA中的len和LenB判断某个字符是英文还是中文)
图二是工作表函数的返回结果。
图二
问题二:为何更改EXCEL的编辑语言为英文后工作表函数LenB的返回效果和Len一样了?
(如图三)查了下资料,好像跟什么DBCS、SBCS有关,但不懂其原理。
有什么通俗易懂的Excel字符编码的资料可以推荐一下?谢谢了!
图三
图三
|
|