Постоянно получаю ошибку «Индекс вне диапазона»

Постоянно получаю ошибку «Индекс вне диапазона»

Итак, я в основном использую Java и C++, а VBA для меня совсем новый. Я очень озадачен тем, почему я постоянно получаю ошибку 9 - "Index out of range". Вот код:

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

Count is equal to 10 (I checked with a msgBox) and so months is an ArrayList of length 10. I'm trying to put the values of months into an array so I can use that array on an autofilter. I keep getting an error at this line:

monthsArr(j) = months.Item(j)

Я думал, что VBA использует 1-индексацию для коллекций, но я действительно не знаю. Кто-нибудь знает, почему я постоянно получаю эту ошибку? Спасибо

решение1

Вы переразмерили monthsArrмассив, чтобы он стал 2-мерным ReDim monthsArr(1, count). Если он должен оставаться 2-мерным массивом, то при назначении ему элементов вы также должны указать, какая часть массива находится в обоих измерениях. Вы используете только одно: monthsArr(j) = months.Item(j). Должно быть что-то вроде monthsArr(j,i) = months.Item(j)где iнаходится второе измерение массива.

Также обратите внимание, что первым в массиве является 0, а не 1. Поэтому, когда вы объявляете monthsArr(1,count), это означает, что первое измерение имеет 2 элемента/элемента, а второе измерение будет иметь count + 1 элемент.

Если предполагается, что это будет не 2-мерный, а 1-мерный массив, то следует использовать: ReDim monthsArr(count)или ReDim monthsArr(count-1)в качестве отсчета от 0.

Связанный контент