Subscript out of range ,VBA

766 Views Asked by At

Hi I am getting error as subscript out of range but i am unable to identify why.

Error is in line marked with **.

Function RemoveDups(aryValues) As Variant

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim aryMembers() As String
Dim epm As New EPMAddInAutomation
Dim aryMembersOnly() As String
Dim arr() As Variant
Dim strConn As String

ReDim aryMembers(1 To UBound(aryValues))
ReDim arr(1 To UBound(aryValues))

strConn = getConn
aryMembersOnly = ProcessMembers(aryValues)

For i = LBound(aryValues) + 1 To UBound(aryValues)
    aryMembers(i) = epm.GetMemberCaption(strConn, aryMembersOnly(i)) 
Next

'getMembersDes = aryMembers

For i = LBound(aryMembers) + 1 To UBound(aryMembers)
    dict(aryMembers(i)) = 1    
Next

t = 0

For i = LBound(aryValues) + 1 To UBound(aryValues)
    For Each v In dict.Keys
        If v = aryMembers(i) And c = 0 Then
            **arr(t) = aryValues(i)**
            c = c + 1
            t = t + 1
        End If
    Next
    c = 0
Next

RemoveDups = arr
1

There are 1 best solutions below

0
Dmitry Pavliv On BEST ANSWER

change t = 0 to t = 1 because dimmension of arr array starts from 1( ReDim arr(1 To UBound(aryValues))):

t = 1 

For i = LBound(aryValues) + 1 To UBound(aryValues)
    For Each v In dict.Keys
        If v = aryMembers(i) And c = 0 Then
            arr(t) = aryValues(i)
            c = c + 1
            t = t + 1
        End If
    Next
    c = 0
Next