相同的数组大小,但下标超出范围

时间:2016-11-09 02:35:20

标签: vba excel-vba excel-2016 excel

声明并填充2个数组(sheet1TempArray和sheet2TempArray),两者的大小相同。下面代码中显示的所有arrarys都声明为public sheet1TempArray(), sheet2TempArray() as String

我想检查sheet1TempArray中的元素是否在sheet2TempArray中,因此我有以下函数。

Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean

     IsInArray = Not IsError(Application.Match(stringToBeFound, arr, 0))

End Function

我有另一个调用此函数的子

For c = 1 To Application.CountA(sheet2TempArray)
        If IsInArray(Trim(CStr(sheet2TempArray(c))), sheet1TempArray) = False Then

           tempNotFoundArray(c) = CStr(sheet2TempArray(c))
        End If

    Next c

然而,它继续显示此错误(sheet2TempArray(c))=。请问我的循环方法是错误的吗?

1 个答案:

答案 0 :(得分:1)

我发现了我之前应该意识到的问题。

For c = 1 To (Application.CountA(sheet2TempArray)-1)

在for循环中包含-1将解决问题。