Перевод двух функций Excel COUNTIF в VBA - PullRequest
0 голосов
/ 12 февраля 2020

Как всегда, довольно простой c вопрос. Я пытаюсь в Excel VBA взять сумму двух countif функций, которые получают значения в двух разных диапазонах с двумя разными критериями, в основном, является ли дата больше или меньше определенной даты.

Эта функция countif возвращает желаемые результаты: =COUNTIF(H3:H21,"<12/1/2020")+COUNTIF(H3:H21,">2/1/2022")

Как ее можно перевести на VBA? Я могу понять, как сделать один из countif s, но объединяя их, даже пытаясь использовать функцию sum worksheet, выдает ошибки несоответствия типов.

Любая помощь, как всегда, очень ценится !!!

1 Ответ

0 голосов
/ 12 февраля 2020
  1. добавить модуль
  2. определить publi c Функция, что вы хотите

под моим кодом (может быть, вы не хотите logi c)

Public Function countIfBeforeDate(targetRage As Range, xConditionDate As String, Optional afterYear As Long = -1) As Long

    countIfBeforeDate = WorksheetFunction.countIf(targetRage, "<" & xConditionDate)

    If afterYear > 0 And VBA.IsDate(xConditionDate) Then
        Dim cConditionDate As Date
        cConditionDate = VBA.DateAdd("yyyy", afterYear, VBA.CDate(xConditionDate))

        countIfBeforeDate = countIfBeforeDate + WorksheetFunction.countIf(targetRage, ">" & cConditionDate)
    End If

End Function

Вы можете использовать функцию в ячейке, как

=countIfBeforeDate(H3:H21,"2020-01-01",2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...