请您解释为什么这个简单的VBA代码在最后一行失败(“下标超出范围”):
Dim test() As Variant
ReDim test(0, 1)
test(0,0) = "key"
test(0,1) = 1
ReDim Preserve test(1, 1)
答案 0 :(得分:15)
使用Preserve调整大小。如果使用“保留”,则只能调整数组的最后一个维度,并且对于每个其他维度,必须指定现有数组中已有的相同边界。
例如,如果您的数组只有一个维度,则可以调整该维度的大小并保留数组的所有内容,因为您要更改最后一个维度。但是,如果您的数组有两个或更多维度,则可以在使用“保留”时更改最后一个维度的大小。