Подсчет количества повторов искомого текста
Функция CoincideCount позволяет быстро посчитать количество повторов текстового фрагмента в тексте ячеек заданного диапазона. Код функции приведен в листинге 2.49.
Листинг 2.49. Функция CoincideCount
Function CoincideCount(Text, Search)
' Проверка правильности входных данных _
(аргумента Search)
If IsArray(Search) = True Then Exit Function
If IsError(Search) = True Then Exit Function
If IsEmpty(Search) = True Then Exit Function
' Просмотр заданного в параметре Text диапазона
For Each iCell In Text
' Анализируются только ячейки, содержащие _
корректные значения
If Not IsError(iCell) Then
' iText – строка для просмотра (в нижнем регистре)
iText = LCase(iCell)
' iSearch – искомое значение (в нижнем регистре)
iSearch = LCase(Search)
' Длина искомой строки
iLen = Len(Search)
' Первый поиск строки iSearch в строке iText _
(этот и последующий поиски производятся без _
учета регистра символов)
iNumber = InStr(iText, iSearch)
While iNumber > 0
' Поиск следующего вхождения строки
iNumber = InStr(iNumber + iLen, iText, iSearch)
' Подсчет количества вхождений
CoincideCount = CoincideCount + vbNull
Wend
End If
Next
End Function
В отличие от функций, описание которых приведено выше, данная функция имеет два аргумента. На втором шаге в окне Аргументы функции необходимо задать область поиска (это может быть как одна ячейка, так и диапазон) и указать расположение искомого текста. Результат отображается в ячейке, которая была выделена до вызова данной функции. Важно отметить, что при поиске не учитывается регистр символов, то есть для этой функции строки слово и СлоВо одинаковы.