Почему при присвоении значения массиву возникает ошибка 9? - PullRequest
0 голосов
/ 06 мая 2019

Я новичок в VBA и пытаюсь присвоить некоторые накопленные значения массиву, но возникает следующая ошибка:

Индекс вне диапазона (ошибка 9).

Вот код:

Dim array1(), acm As Long
Dim i As Integer

i = 0
For lin = 4 To contRows 
    For col = 3 To contColumns
       acm = acm + Sheets("2017").Cells(lin, col).Value
    Next col
    array1(i) = acm 'error 9
    i = i + 1
Next lin

Я ожидаю, что каждое накопленное значение из этой строки будет сохранено в другом индексе массива.

1 Ответ

0 голосов
/ 06 мая 2019

(скопировано с tigeravatar)

Вы никогда не дадите array размеры.Вам нужно либо ReDim указать его соответствующие размеры, либо включить его размеры в исходную строку Dim.В противном случае это массив, который не может содержать никаких элементов, и поэтому любая позиция в массиве будет недействительной (следовательно, «вне диапазона»).Похоже, что вы хотите, после строки Dim array1()... ReDim array1(1 to contRows - 3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...