为数组赋值时为什么会发生错误9?

时间:2019-05-06 19:53:55

标签: excel vba

我是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 :(得分:0)

(从tigeravatar复制)

您永远不会给array尺寸。您需要ReDim为其提供适当的尺寸,或者需要在原始Dim行中包含其尺寸。否则,它是一个不能容纳任何元素的数组,因此该数组中的任何位置都将无效(因此“超出范围”)。在Dim array1()...行是ReDim array1(1 to contRows - 3)

之后,看起来像您想要的