VBA Countif, использующий массивы в качестве аргументов - PullRequest
0 голосов
/ 06 марта 2020

Мне было интересно, есть ли возможность использовать countif для массивов.

В настоящее время существует два массива. Один из них - массив с диапазоном (RangeArray), а другой - массив критериев (CritArray), полученный из другой книги, но сохраняется в массиве. Я пытаюсь использовать метод countif в VBA с использованием массивов if и хранить значения countif в ячейке. Так что мне не нужно постоянно перемещаться между рабочими книгами.

Dim RangeArray, CritArray as Variant

RangeArray = Array(1,2,3,4,2,4,2,5,7,1,7,1,2)
CritArray = Array(1,2)

For i = 1 To LastRow
    Cells(i, 1).Value = WorksheetFunction.CountIf(RangeArray, CriteriaArray)
Next i

Когда я пытаюсь что-то сделать среди этих строк, он постоянно выдает ошибку "Требуется объект".

Любая помощь будет принята с благодарностью!

С уважением,

1 Ответ

1 голос
/ 06 марта 2020
Sub test()
Dim RangeArray, CritArray As Variant
Dim Counts As New Collection

RangeArray = Array(1, 2, 3, 4, 2, 4, 2, 5, 7, 1, 7, 1, 2, 11)
CritArray = Array(1, 2)

For i = 0 To UBound(CritArray)
Count = 0
    For j = 0 To UBound(RangeArray)
    If CritArray(i) = RangeArray(j) Then
    Count = Count + 1
    End If
    Next
Counts.Add Count
Next

For k = 1 To Counts.Count
Cells(k, 1) = Counts(k)
Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...