相同的数组大小,但下标超出范围
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 将解决问题。
声明并填充了 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 将解决问题。