Public Function Left2(ByVal lpString As String, ByVal lpCutLen As Integer) As String
Dim i As Integer
Dim mLen As Integer
Dim mByteCount As Long
Dim mSpace As Boolean
If lpString <> "" Then For i = 1 To Strings.Len(lpString)
mByteCount = mByteCount + Strings.LenB(StrConv(Strings.Mid(lpString, i, 1), vbFromUnicode)) If mByteCount > lpCutLen Then
Exit For
End If mLen = mLen + 1 If mByteCount <> lpCutLen Then '到最一个字符,字节数不相等补空格
mSpace = True
Else
mSpace = False
End If Next
If mSpace Then
Left2 = Strings.Left(lpString, mLen) & Space(1) '补空格
Else
Left2 = Strings.Left(lpString, mLen)
End If Else
Left2 = ""
End If
End Function'应用例子
Private Sub Command1_Click()
Dim mStr As String
Dim mTxt As String mTxt = "Hi,欢迎光临 “新兴网络”" 'mStr = Left2(mTxt, 2) '截取 2 字节,返回:"Hi"
'mStr = Left2(mTxt, 4) '截取 4 字节,返回:"Hi,"
'mStr = Left2(mTxt, 5) '截取 5 字节,返回:"Hi,欢"
'mStr = Left2(mTxt, 6) '截取 6 字节,返回:"Hi,欢"
'mStr = Left2(mTxt, 11) '截取 11 字节,返回:"Hi,欢迎光临"
mStr = Left2(mTxt, 12) '截取 12 字节,返回:"Hi,欢迎光临"
MsgBox mStr
哪位大侠能帮我根据这个写一个类似于mid的函数啊,就是按照字节截取字符串
Dim i As Integer
Dim mLen As Integer
Dim mByteCount As Long
Dim mSpace As Boolean
If lpString <> "" Then For i = 1 To Strings.Len(lpString)
mByteCount = mByteCount + Strings.LenB(StrConv(Strings.Mid(lpString, i, 1), vbFromUnicode)) If mByteCount > lpCutLen Then
Exit For
End If mLen = mLen + 1 If mByteCount <> lpCutLen Then '到最一个字符,字节数不相等补空格
mSpace = True
Else
mSpace = False
End If Next
If mSpace Then
Left2 = Strings.Left(lpString, mLen) & Space(1) '补空格
Else
Left2 = Strings.Left(lpString, mLen)
End If Else
Left2 = ""
End If
End Function'应用例子
Private Sub Command1_Click()
Dim mStr As String
Dim mTxt As String mTxt = "Hi,欢迎光临 “新兴网络”" 'mStr = Left2(mTxt, 2) '截取 2 字节,返回:"Hi"
'mStr = Left2(mTxt, 4) '截取 4 字节,返回:"Hi,"
'mStr = Left2(mTxt, 5) '截取 5 字节,返回:"Hi,欢"
'mStr = Left2(mTxt, 6) '截取 6 字节,返回:"Hi,欢"
'mStr = Left2(mTxt, 11) '截取 11 字节,返回:"Hi,欢迎光临"
mStr = Left2(mTxt, 12) '截取 12 字节,返回:"Hi,欢迎光临"
MsgBox mStr
哪位大侠能帮我根据这个写一个类似于mid的函数啊,就是按照字节截取字符串
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货