使用ReDim(VBA)超出范围的下标

时间:2011-10-21 09:10:43

标签: arrays vba

请您解释为什么这个简单的VBA代码在最后一行失败(“下标超出范围”):

    Dim test() As Variant
    ReDim test(0, 1)
    test(0,0) = "key"
    test(0,1) = 1
    ReDim Preserve test(1, 1)

1 个答案:

答案 0 :(得分:15)

使用Preserve调整大小。如果使用“保留”,则只能调整数组的最后一个维度,并且对于每个其他维度,必须指定现有数组中已有的相同边界。

例如,如果您的数组只有一个维度,则可以调整该维度的大小并保留数组的所有内容,因为您要更改最后一个维度。但是,如果您的数组有两个或更多维度,则可以在使用“保留”时更改最后一个维度的大小。