0

我正在尝试填充一个二维范围数组。我不知道数组需要多大,所以我使用 ReDim 和 Preserve 函数根据需要动态调整数组的大小。

我在运行代码时遇到运行时错误 91:“对象变量或未设置块变量”。

我不是经验丰富的编码员,但我已经设法隔离了错误,并且确信它来自下面的伪代码。

谁能看到我犯的任何会产生运行时错误的错误?

    Dim ArrayName() as Range
    Dim counter as Integer

    If condition = True Then

        counter = counter + 1

        ReDim Preserve ArrayName(0, counter - 1) 
        ArrayName(0, counter - 1) = Cells(counter, counter) 'I get a runtime error here

    End If

谢谢你。

4

1 回答 1

0

如果要在数组中存储范围,则需要以Set这种方式在问题行之前添加:

Set ArrayName(0, counter - 1) = Cells(counter, counter)

但是,如果要存储单元格的值,则需要将声明行更改为:

Dim ArrayName() as Double 'or String or Variant depending on value type you need to keep in array
于 2014-01-22T06:01:02.040 回答