У меня есть функция VBA, которая проходит через несколько пользовательских диапазонов на основе пользовательских условий и добавляет элементы в массив. Для его разработанных вариантов использования это почти наверняка добавит дубликаты. В конце меня интересует только количество уникальных элементов в массиве, который я построил.
Я пытаюсь вызвать эту функцию:
Function GetUniqueCount(aFirstArray As Variant)
Dim arr As New Collection, a
Dim i As Long
On Error Resume Next
For Each a In aFirstArray
arr.Add a, Str(a)
Next
GetUniqueCount = arr.Count
End Function
Вот так:
Function Stuff(parameters)
Dim myArray() as Variant
...do things to populate myArray, finally
Stuff = GetUniqueCount(myArray)
Функция GetUniqueCount представляет собой слегка измененную настройку принятого здесь ответа на аналогичный вопрос.
Когда я делаю это, Stuff всегда возвращает 1, даже когда кажется очевидным, что это не должно. До этого момента я проверял Stuff, и он точно выдает количество ожидаемых элементов, я просто делаю что-то не так, когда пытаюсь подсчитать количество уникальных элементов. Любая помощь будет принята с благодарностью, так как я все еще изучаю массивы VBA.