VBA数组 Erase 清除数组
Erase清除数组。针对固定数组与动态数组,清除的含义不同。
1)固定数组的清除
针对固定数组,清除表示 不会释放空间,但会修改所有元素的值,变为“空”:数值数组元素会变为0;字符串数组元素会变为"";等等。
示例代码:
Sub array10()
  '声明固定数组
  Dim arr1(3) As Integer
  arr1(0) = 100
  arr1(1) = 200
  arr1(2) = 300
  arr1(3) = 400
  '清除固定数组
  Erase arr1
  Debug.Print "isEmpty(arr1):" & IsEmpty(arr1) '结果为False
  Debug.Print "TypeName(arr1):" & TypeName(arr1) '结果为Integer(),表示整数数组
  For Each item1 In arr1
    Debug.Print item1
  Next
End Sub
 
输出结果
isEmpty(arr1):False
TypeName(arr1):Integer()
 0 
 0 
 0 
 0
 
2)动态数组的清除
针对动态数组,清除表示完全释放数组的内存空间。
示例代码:
Sub array11()
  '声明动态数组
  ReDim arr1(3) As Integer
  arr1(0) = 100
  arr1(1) = 200
  arr1(2) = 300
  arr1(3) = 400
  '清除动态数组
  Erase arr1
  Debug.Print "isEmpty(arr3):" & IsEmpty(arr3) '结果为True
  Debug.Print "TypeName(arr3):" & TypeName(arr3) '结果为Empty
  'For循环会报错,因为数组现在为Empty。
  'For Each item1 In arr1
  '  Debug.Print item1
  'Next
End Sub
 
输出结果
isEmpty(arr3):True
TypeName(arr3):Empty