VBA实用小程序54: 计算字符串中指定子字符串出现的次数

论坛 期权论坛 期权     
完美Excel   2019-7-7 23:57   2742   0
学习Excel技术,关注微信公众号:
excelperfect

下面的自定义函数iCountString可以用来统计子字符串在字符串中出现的次数:
'----------------------------------
'strText:被查找的字符串
'strFind:要查找的子字符串
'blnCaseSensitive:是否区分大小写
'----------------------------------
Function iCountString(strText As String, _
        strFind As String, _
        Optional blnCaseSensitive As Boolean) _
        As Integer
    Dim iCount As Integer
    Dim iPos As Integer
    Dim iMode As Integer
   
    '如果没有要查找的子字符串
    '则返回0
    If Len(strFind) > 0 Then
        '是否区分大小写
        If blnCaseSensitive Then
            iMode = vbBinaryCompare
        Else
            iMode = vbTextCompare
        End If
        iPos = 1
        '在字符串中循环查找
        Do
            iPos = InStr(iPos, strText, strFind,iMode)
            '如果找到则计数加1
            '同时将下次查找的位置更新为找到的字符串末尾
            If iPos > 0 Then
                iCount = iCount + 1
                iPos = iPos + Len(strFind)
            End If
        Loop While iPos > 0
    Else
        iCount = 0
    End If
    '返回找到的数量
    iCountString = iCount
End Function

使用下面的代码来测试iCountString函数:
Sub test()
    Dim i As Integer
    Dim str As String
    Dim strSearch As String
   
    str = "完美Excel是一个Excel技术分享平台"
    strSearch = "Excel"
   
    i = iCountString(str, strSearch, False)
   
    MsgBox "找到了 " & i & " 个子字符串"
End Sub

运行后的结果如下图1所示。


图1

程序代码的图片版如下:


欢迎分享本文,转载请注明出处。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎关注[完美Excel]微信公众号:
方法1—在微信通讯录中搜索“完美Excel”或者“excelperfect”后点击关注。
方法2—扫一扫下面的二维码


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:195
帖子:39
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP