Я пытаюсь Count
количество partial matches
в 1D-массиве, не прибегая к зацикливанию массива. STerm
содержит строку Ключ для поиска. Я попытался использовать следующие функции:
Sterm
- это Dictionary
, который я зацикливаю и поэтому меняется каждый раз. Элементы словаря, соответствующие этому ключу, являются двумерным массивом различных строковых значений. Я перебираю 1-е измерение, и оно представляет собой одномерный массив значений, в котором может присутствовать Sterm
.
Например, если Sterm
равно TC
, тогда массив может содержать TC
, TC 1
, TC A
... и т. Д., И функция должна найти и посчитать эти частичные совпадения.
With Application
bCount = .Count(.Find(.Index(oVarDict(Key), i), sTerm, 1))
bCount = .Count(.Find(.Index(oVarDict(Key), i), sTerm & "*", 1))
...
Теперь комбинация Application.Count
& Application.Find
работает хорошо (так как Count исключает любые значения ошибок), но Application.Find
приводит к совпадению EXACT
. Я хочу PARTIAL
матчей. This looked very promising until it started returning 0 counts for partial matches i.e. it was not able to detect partial matches.
Кроме того, на MSDN или в Интернете нет документации по Application.Find
синтаксису.
Затем я попытался использовать VBA.Filter
, как известновозврат Partial matches
. Но Application.Count
не умеет считать textual values
. Поэтому я использовал Application.CountA
, но это приводит к ошибке несоответствия типов по неизвестной причине.
Также я не знаю, что возвращает VBA.Filter
, если не найдено совпадений.
Так что я подумал о том, чтобы сделать VBA.Replace
всех частичных совпадений с 1, а затем скормить его Count
. Это также приводит к ошибке - Expression not in expected context
.
Application.Count(CLng(VBA.Replace(Join(VBA.Filter(Application.Index(oVarDict(Key), i), sterm, True, vbTextCompare), ","), sterm, 1)))
Я пытался использовать Application.Countif
, но не уверен, как записать его в VBA.
Application.CountIf(Application.Index(oVarDict(Key), i), sterm & "*")
Но выдает Error 2015
.
Мне не хватает некоторого синтаксиса ИЛИ есть ли лучшая функция для поиска и подсчета частичных совпадений без зацикливания?