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