Для того, чтобы определить сколько раз встречается в нужной строке искомый текст, который может быть как отдельным символом, так и набором символов, можно использовать любую из двух нижеприведенных функций. Причём, при подсчёте Вы можете также задать и способ сравнения, так, например, в первом примере демонстрирующем вызов функции, регистр символов учитывается, а во втором примере, соответственно, не учитывается.
Private Function CountRepeat&(Text$, Search$, _
Optional Register As Boolean = True)
' MS Excel 95, 97, 2000, XP, ...
If Register = True Then
CountRepeat& = Len(Text$) - _
Len(Application.Substitute(Text$, Search$, ""))
Else
CountRepeat& = Len(Text$) - _
Len(Application.Substitute(LCase(Text$), LCase(Search$), ""))
End If
End Function
Private Sub Test()
iResult1 = _
CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о")
iResult2 = _
CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о", False)
End Sub
Private Function CountRepeat&(Text$, Search$, _
Optional CompareMethod& = vbBinaryCompare)
' MS Excel 2000, XP, ...
CountRepeat& = Len(Text$) - _
Len(Replace(Text$, Search$, "", , , CompareMethod&))
End Function
Private Sub Test()
iResult1 = _
CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о")
iResult2 = _
CountRepeat("ТЕКСТ, содержащий различные СИМВОЛЫ", "о", vbTextCompare)
End Sub