自己计算,以pos 为当前光标的位置。
选取从开头到当前光标位置的所有文字,逐一判断(汉字的ascii码为负值),若是汉字则pos=pos+2 否则pos=pos+1

解决方案 »

  1.   

    这要用到StrConv函数,StrConv 函数的语法为:
    StrConv(待转换字串, 转换格式) 
    其中转换格式在这里用到的是: 
    vbUnicode 将 Ansi 字串转换为 Unicode 
    vbFromUnicode 将 Unicode 字串转换为 Ansi 
    将字串转成 Ansi 之後,所有的字串处理指令都要加个 B,例如:LeftB, RightB, MidB, ChrB, InstrB, LenB, InputB 等。例用这些指令来处理就行了。 
    当你处理完毕之后,你可以再将它再转回 Unicode,这样就可以使用一般的字串处理 指令了。 
    这样讲看得懂吗?如果还是不了解,看看下面的实例说明: Private Sub Command1_Click () 
    Dim sUnicode As String 
    Dim sAnsi As String ' Unicode 运算 
    sUnicode = "王小明,A123456789,651023,台北市中山路100号,(02)2345678" 
    Debug.Print Len(sUnicode) ' 传回 44 ' 将 Unicode 字串转成 Ansi 
    sAnsi = StrConv(sUnicode, vbFromUnicode) 
    ' Ansi 运算 
    Debug.Print LenB(sAnsi) ' 传回 54 
    End Sub
    怎么样,懂了吗?