考虑:
Public Function StringCounter(sBig As String, sKeys As String) As Long
ary = Split(sBig, ";")
bry = Split(sKeys, ";")
StringCounter = 0
For Each b In bry
If InStr(1, ";" & sBig & ";", ";" & b & ";") <> 0 Then
StringCounter = StringCounter + UBound(Filter(ary, b)) + 1
End If
Next b
End Function
例如:
如果像 AA 这样的词在单元格 A1 中出现多次,该函数将对每次出现进行计数。
编辑#1:
此版本可以使用或不使用空格:
Public Function StringCounter(sBig As String, sKeys As String) As Long
sBig = Replace(sBig, " ", "")
sKeys = Replace(sKeys, " ", "")
ary = Split(sBig, ";")
bry = Split(sKeys, ";")
StringCounter = 0
For Each b In bry
If InStr(1, ";" & sBig & ";", ";" & b & ";") <> 0 Then
StringCounter = StringCounter + UBound(Filter(ary, b)) + 1
End If
Next b
End Function