下标超出范围,VBA
嗨,我得到了错误,因为下标超出范围,但我无法确定原因 错误在标有**的行中下标超出范围,VBA,vba,Vba,嗨,我得到了错误,因为下标超出范围,但我无法确定原因 错误在标有**的行中 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()
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
将
t=0
更改为t=1
,因为arr
数组的变暗从1
开始(ReDim arr(1到UBound(aryValue))
):
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