VBA - 将单元格值附加到空数组

时间:2017-01-30 13:59:43

标签: excel vba append dynamic-arrays

我想知道如何在空动态数组中追加一个值。

我定义了以下数组为空

Dim ratioArray As Variant

然后,基于特定的IF条件,如果条件为真,我想附加值。所以我尝试了如下,但它返回了运行时错误' 13'。

ReDim Preserve ratioArray(UBound(ratioArray) + 1)
ratioArray = Cells(8+a,4+o)

a和o是整数变量。

ReDim Preserve有什么问题?

提前致谢!

2 个答案:

答案 0 :(得分:0)

仅作为工作解决方案的一个例子:

Sub Test()

    Dim ratioArray() As Variant

    ReDim ratioArray(1)
    ReDim Preserve ratioArray(UBound(ratioArray) + 1)
    ratioArray(1) = Cells(1, 1)
End Sub

答案 1 :(得分:0)

UBound(ratioArray)失败,因为当时不知道变体是一个数组。

将其设为数组:Dim ratioArray() As Variant

但是它仍然会失败,因为数组是无量纲的,您需要在读取Redim ratioArray(0)之前的某个时刻调用Ubound()

分配单个值时,请使用索引:

ratioArray(0) = Cells(8+a,4+o)