ReDim 数组但保留值

par*_*cer 2 arrays excel vba

假设我有这样的代码:

Dim resultArray() As Double
ReDim resultArray(1 to 10) As Double

Dim i As Integer
For i = 1 to 10 
  resultArray(i) = i
Next

ReDim resultArray(1 to 20) As Double
For i = 11 To 20
 resultArray(i) = i
Next
Run Code Online (Sandbox Code Playgroud)

这样的代码可以吗?第一个周期的值会保留在数组中吗?

我不知道数组的长度。20只是一个数字,直到程序结束我才知道。

Tom*_*Tom 5

您可以通过ReDim Preserve以下方式执行此操作,但是这只允许您更改数组的外部长度。但是,如果您确实知道数组的最大大小(正如您在此处所做的那样),那么最好将其设置为Dim最大大小。ReDim Preserve如果需要的话,您也可以随时减少最后使用的数组的大小。

Dim resultArray() As Double
ReDim resultArray(1 to 10) As Double

Dim i As Integer
For i = 1 to 10 
  resultArray(i) = i
Next

ReDim Preserve resultArray(1 to 20) As Double
For i = 11 To 20
 resultArray(i) = i
Next
Run Code Online (Sandbox Code Playgroud)