Как бороться с несмежным диапазоном при использовании COUNTIF в VBA UDF? - PullRequest
0 голосов
/ 11 марта 2019

У меня есть написанная мной функция VBA, которая называется CalculateOverStrings(Values as Range).Функция в основном принимает диапазон ячеек, содержащих строки, подсчитывает каждую из них, сопоставленную с различными условиями, например, содержит ли она букву «A» и т. Д., И возвращает строковое значение.Я сталкиваюсь с проблемой, когда получаю счетчик только первого элемента в диапазоне, соответствующем условиям.

Как я это называю: CalculateOverStrings(INDIRECT({"A1", "B2", "D4"}).В этом случае он вернет только результат COUNTIF, глядя на «A1».

Из моего исследования я понял, что это потому, что мне нужно использовать SUM из COUNTIF для работы с несколькими диапазонами.Тем не менее, я не могу заставить это работать в VBA.

Вот моя функция:

Function CalculateOverStrings(Values As Range) As String
    Dim Result As Result

    Dim NumA As Integer
    NumA = Application.WorksheetFunction.Sum(Application.WorksheetFunction.CountIf(Values, "*a*"))

    CalculateOverStrings = ResultToStr(ResultFromCount(NumA))
End Function

NumA всегда заканчивается как 1 или 0 в зависимости от того, содержит ли первый диапазон, переданный функции, a илине.Как правильно применить SUM в VBA для достижения того же результата, что и здесь и других подобных вопросов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...