我正在使用数组来根据它的压力存储蒸汽的属性。现在我有9个压力的属性,所以我使用的是静态数组。我想更灵活,所以我想切换到动态数组。
当我在循环中使用ReDim foo(1 to i, 1 to 10)
时,我完全松开了除最后一行之外的所有数据
当我使用ReDim Preserve foo(1 to i, 1 to 10)
或ReDim Preserve(i,10)
程序抛出错误“运行时错误'9':下标超出范围”时。 i
从1到9。
如何在不丢失数据的情况下将行/列添加到数组中?
答案 0 :(得分:6)
您可能只有Redim保留VB6多维数组中的 final 维度。以下是MSDN的信息:
如果您包含Preserve关键字, Visual Basic从中复制元素 现有数组到新数组。 使用“保留”时,可以调整大小 只有数组的最后一个维度, 而且你必须拥有其他每一个维度 指定它已有的相同大小 在现有的数组中。
例如,如果您的数组只有 一个维度,你可以调整它 维度,仍然保留 数组的内容,因为它是 最后也是唯一的维度。然而, 如果您的阵列有两个或更多 尺寸,你可以改变尺寸 如果您使用,只有最后一个维度 保留
以下示例增加了 a的最后一个维度的大小 动态数组不丢失任何 数组中的现有数据,然后 使用部分数据减小大小 损失:
Dim IntArray(10, 10, 10) As Integer
ReDim Preserve IntArray(10, 10, 20)
ReDim Preserve IntArray(10, 10, 15)