Excel vba:ReDim数组但保留值

时间:2017-11-28 09:58:54

标签: arrays excel vba 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

这样的代码可能吗?来自第一个周期的值是否仍然在数组中?

编辑:我知道数组的最大长度。 20只是一个数字,直到程序结束时我才知道。

2 个答案:

答案 0 :(得分:3)

您可以通过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

答案 1 :(得分:2)

使用保留关键字

window.addEventListener("beforeunload", function (e) {

  var confirmationMessage = "\o/";     
  e.returnValue = confirmationMessage;           
  return confirmationMessage;       

});