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

Same array size, but subscript out of range

声明并填充了 2 个数组(sheet1TempArray 和 sheet2TempArray),两者的大小相同为 102。下面代码中显示的所有数组都声明为 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)) = 。请问我的循环方法是不是错了?

我发现了我早该意识到的问题。

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

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