Ошибка во время выполнения свойства Countifs со строковыми критериями

#excel #vba #function #sumifs

#превосходить #vba #функция #сумифы

Вопрос:

У меня возникли некоторые проблемы с функцией worksheetfunction.countifs. Я не уверен, правильно ли я выразился, так как получаю ошибку —

Ошибка во время выполнения «1004»: Не удалось получить свойство CountIfs класса WorksheetFunction

 Sub test() Dim Category(7 To 10) As Variant Dim Ar As Variant Dim Da As Range Dim Cat As Range Dim Br As Variant   Set Da = Range("A3:A" amp; Range("A" amp; Rows.Count).End(xlUp).Row) Set Cat = Range("C3:C" amp; Range("C" amp; Rows.Count).End(xlUp).Row)  Ar = Range("F2").Value2 Br = Application.WorksheetFunction.EoMonth(Range("F2"), 0)  For i = 7 To 10  Category(i) = Worksheets("Log").Cells(1, i).Value  Cells(2, i) = Application.WorksheetFunction.CountIfs(Da, "gt;=" amp; Ar, Da, "lt;=" amp; Br, Cat, Category(i))  Next i  End Sub  

Похоже,что проблема связана с последним диапазоном и критериями функции sumifs (Cat, Категория(i), где Категория(i) равна строке).

Дело в том,что если я разделю sumif и использую Cat, Категория сама по себе в SUMIF, она работает нормально, и только два других критерия работают нормально. Кажется, я упускаю что-то важное, когда собираю их вместе. Буду признателен за любые рекомендации.

Комментарии:

1. В чем заключается фактическая ошибка?

Ответ №1:

Таким образом, на самом деле это было связано с тем, как объявлялись строковые критерии, изменение которых исправило это.

 Cells(2, i) = Application.WorksheetFunction.CountIfs(Range("C3", Range("C3").End(xlDown)), "=" amp; test amp; "*", Range("A3", Range("A3").End(xlDown)), "gt;=" amp; Ar, Range("A3", Range("A3").End(xlDown)), "lt;=" amp; Br)  

Комментарии:

1. Это не должно иметь никакого значения, но вам нужно убедиться, что диапазоны имеют одинаковое количество строк.