模块/类模块
获取第N个分隔符后的字符串
2017-05-09 17:04:25

群里有人问了下,如何获取第若干个分隔符后的字符串。随手写了一段代码,供有需要的人使用。没有太复杂的东西,新手可以拿来练习下for语句的用法。另外,也可以用split来处理,不过考虑到split处理后,还要将剩下的数组元素重新join成一个字符串,感觉也挺麻烦的。

详细函数源码

'调用说明:

'call getText(strInput ,strSperator , lngNum)

'参数说明:

'strInput————————————————————输入字符串

'strSperator——————————————————分隔符

'lngNum—————————————————————第几个分隔符

'例如:

'getText("123456-123456-123-789-456", "-", 3)

'返回第三个分隔符(-)位置之后的字符串:789-456

Function getText(ByVal strInput As String, ByVal strSperator As String, ByVal lngNum As Long) As String

    Dim i As Long

    Dim k As Long

    Dim j As Long

    

    For i = 1 To Len(strInput)

        If Mid(strInput, i, 1) = strSperator Then

            k = k + 1

            If k = lngNum Then

                j = i

                Exit For

            End If

        End If

    Next

    

    If j > 0 Then

        getText = Mid(strInput, j + 1)

    Else

        MsgBox "没有符合要求的字符串"

        getText = ""

    End If

End Function