Mam funkcję VBA, która przechodzi przez kilka zakresów podanych przez użytkownika na podstawie warunków podanych przez użytkownika i dodaje elementy do tablicy. W przypadku zaprojektowanych przypadków użycia prawie na pewno doda duplikaty. Na koniec interesuje mnie tylko liczba unikalnych przedmiotów w zestawie, który zbudowałem.
Próbuję wywołać tę funkcję:
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
Tak jak:
Function Stuff(parameters)
Dim myArray() as Variant
...do things to populate myArray, finally
Stuff = GetUniqueCount(myArray)
Funkcja GetUniqueCount jest bardzo lekko zmodyfikowaną poprawką przyjętej tutaj odpowiedzi na podobne pytanie.
Kiedy to robię, Rzeczy zawsze zwracają 1, nawet jeśli wydaje się oczywiste, że nie powinno. Testowałem Stuff do tego momentu i dokładnie produkuje liczbę oczekiwanych elementów, po prostu robię coś złego, gdy próbuję policzyć liczbę tych elementów, które są unikalne. Każda pomoc byłaby mile widziana, ponieważ wciąż mam problemy z tablicami VBA.