मेरे पास एक 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 लौटता है तब भी जब यह स्पष्ट लगता है कि यह नहीं होना चाहिए। मैंने इस बिंदु तक सामग्री का परीक्षण किया और यह अपेक्षित तत्वों की संख्या का सही उत्पादन कर रहा है, मैं कुछ गलत कर रहा हूं जब मैं उन तत्वों की संख्या की गणना करता हूं जो अद्वितीय हैं। किसी भी मदद की सराहना की जाएगी, क्योंकि मुझे अभी भी वीबीए सरणियों की फांसी मिल रही है।