继续收到“索引超出范围”错误

继续收到“索引超出范围”错误

所以我主要使用 java 和 C++,而 VBA 对我来说非常新。我很困惑为什么我总是收到错误 9 - “索引超出范围”。代码如下:

Dim count As Integer
Dim j As Integer

count = months.count

Dim monthsArr() As String
ReDim monthsArr(1, count)

For j = 1 To count
    monthsArr(j) = months.Item(j)
Next j

计数等于 10(我用 msgBox 检查过),因此 months 是一个长度为 10 的 ArrayList。我试图将 months 的值放入一个数组中,这样我就可以在自动过滤器上使用该数组。我在这行代码中一直收到错误:

monthsArr(j) = months.Item(j)

我以为 VBA 使用 1 索引来处理集合,但我真的不知道。有人知道为什么我一直收到此错误吗?谢谢

答案1

您已将其重新定monthsArr为二维数组ReDim monthsArr(1, count)。如果它仍应为二维数组,则在为其分配元素时,还必须显示数组在两个维度上的哪一部分。您只使用了一个:monthsArr(j) = months.Item(j)。它应该类似于数组的第二维在monthsArr(j,i) = months.Item(j)哪里。i

另请注意,0 是数组中的第一个,而不是 1。因此,当您声明时monthsArr(1,count),这意味着第一维有 2 个元素/项目,而第二维将有 count + 1 个元素。

如果它不是一个二维数组而是一个一维数组,那么您应该使用:ReDim monthsArr(count)ReDim monthsArr(count-1)作为其基于 0 的数组。

相关内容