у меня есть функция 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 - это очень слегка измененная настройка принятого ответа здесь на подобный вопрос.
когда я это делаю, материал всегда возвращается 1, даже если кажется очевидным, что этого не должно быть. Я тестировал материал до этого момента, и он точно производит количество ожидаемых элементов, я просто делаю что-то неправильно, когда пытаюсь подсчитать количество тех элементов, которые уникальны. Любая помощь будет оценили, так как я еще учусь массивы VBA.