'
'功能示例:ChgStr("abc汉字123数字456",18)="abc 汉字123 数字45"
'功能:当asc字符为奇数时,后补空格,最后取定长,若最后部分是半个汉字,则舍去
'
Function ChgStr(ByVal sData As String, ByVal iMaxLen As Integer) As String
    Dim i  As Integer
    Dim iCount As Integer
    Dim iAscb As Integer
    Dim iLen As Integer
    Dim sTemp As String
    
    iLen = LenB(StrConv(sData, vbFromUnicode, 2052))
    For i = 1 To iLen
        iAscb = AscB(MidB(StrConv(sData, vbFromUnicode, 2052), i, 1))
        If iAscb < &H80 Then
            iCount = iCount + 1
        Else
            If iCount / 2 <> iCount \ 2 Then
                ChgStr = ChgStr + ChrB(&H20)
                iCount = 0
            End If
        End If
        ChgStr = ChgStr + ChrB(iAscb)
    Next
    
    iCount = 0
    iLen = LenB(StrConv(ChgStr, vbFromUnicode, 2052))
    For i = iLen To 1 Step -1
        iAscb = AscB(MidB(StrConv(sData, vbFromUnicode, 2052), i, 1))
        If iAscb > &H7F Then
            iCount = iCount + 1
        Else
            If iCount / 2 <> iCount \ 2 Then
                ChgStr = MidB(StrConv(sData, vbFromUnicode, 2052), 1, iLen - 1)
                Exit Function
            End If
        End If
    Next
End Function