If LenB(mrg) = 8 Then
mrg = Left(mrg, 1) & "   " & Right(mrg, (Len(mrg) - 1))
Else
222
End If上面的代码运行后,我是希望可以在名字为2个字的中间加上两个空格,使其基本上可以对齐.但是使用lenb(mrg) = 8 作条件时,修改不成功.
当取用len = 6代替时,就可以运行成功.
在excel中的单元格用len()和lenb()测试有这样的数据
  len lenb
张辉(13)     6 8
冼至恩(13)   7 10
颜静(9)     5 7
卓金胜(9)    6   9
请问:lenb(mrg) = 8 该作何改动?曾在一些网页上看到过,在excel表格中用lenb()测得的结果,与在VBA中的的结果不一样?请问有这回事吗?
为什么?
非常感谢你们的赐教!

解决方案 »

  1.   

    len是字符数
    lenb是字节数
    中文字两个字节
    数字,符号一个字节
      

  2.   

    1楼说的我明白,张辉(13),它的lenb值等于8
    当我在代码中以它作为条件(红色部分),if ...then后面的语句不执行
    张辉(13)的len值等于6,当以len(mrg)=6作为条件时,if ...then 后面的语句就执行
    请问该如何修改红色部分,代码才会运行?
    谢了.
      

  3.   

      在VBA中,字符存贮格式是UNICODE编码,也就是说,不管是汉字还是西文字符,它都是占2个字节!!!
      假设有一字符串str, lenb(str)恒等于2*len(str) !!!
      也就是说,在VBA中,你是没法通过len()和lenb()来判断一个字符串中有多少汉字的!
      

  4.   

    VBA中要判断一个字符串中的汉字个数,只有一个字符一个字符地判断、计数。
      

  5.   

    分数是不是我把这个贴子作结之后,就可以付给你?chen8013