VBA, пытаясь найти слово из диапазона, используя пользовательскую функцию - PullRequest
0 голосов
/ 15 марта 2019

если у меня есть список важных слов, а затем поле текста / комментария. Я хочу найти в поле любое из важных слов (целые слова, а не только строки)

т.е. Если важным словом является «кошка», я не хочу, чтобы «категория» или «scatman» возвращали положительный результат.

Вот функция до сих пор

Function RangeFunc(rng As Range, funct As String) As String
Dim c As Range
Dim cnt As Integer
cnt = 0

For Each c In rng.Cells
    'If c.Text = funct Then
    If InStr(c.Text, " "&funct&" ") > 0 Then

        cnt = cnt + 1

    End If
Next c
RangeFunc = cnt

Функция завершения

Похоже, он не возвращает счетчик одного слова

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете сделать это, используя два диапазона, один для проверки списка и один для поиска элементов, поэтому, имея список для проверки в A1: A3 и список проверки в C1: C3, я использовал

=SUM(--($A$1:$A$3=$C$1:$C$3))

Это формула массива, поэтому для ее ввода в ячейку требуется ctrl shift и ввод.

Вы можете сделать

application.Evaluate("=SUM(--($A$1:$A$3=$C$1:$C$3))")

в VBA вместо этого.

...