Как подсчитать количество повторов искомого текста в другом тексте?
Категория: Basic
2012-09-17 15:47:55
Для того, чтобы определить сколько раз встречается в нужной строке искомый текст, который может быть как отдельным символом, так и набором символов, можно использовать любую из двух нижеприведенных функций. Причём, при подсчёте Вы можете также задать и способ сравнения, так, например, в первом примере демонстрирующем вызов функции, регистр символов учитывается, а во втором примере, соответственно, не учитывается.
code: #vba
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
code: #vba
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
Поделиться: