我们在使用Excel软件的VBA编写进销存表格时,一定要用到数组,使用不当的话会造成“数组的内存泄漏”问题。
先看一看VBA数组可能出现的错误:
- Sub RAM_Limit()
- Dim iLen As Long
- Dim vReturn As Variant
- iLen = UBound(RAM_Consume()) '不要在函数里面直接引用新分配的数组,会造成动态分配不能释放导致内存泄漏
- Debug.Print iLen
- End Sub
复制代码
在VBA中正确使用数组的方法:
- Sub RAM_Solve()
- Dim iLen As Long
- Dim vReturn As Variant
- vReturn = RAM_Consume() '正确的方法
- iLen = UBound(vReturn)
- Debug.Print iLen
- End Sub
复制代码
上面例子中用的自定义函数:
- Function RAM_Consume() As Long() '返回Long数组
- Dim arrTemp(10000) As Long
- RAM_Consume = arrTemp
- End Function
复制代码
观察内存泄漏的方法:进入任务管理器,运行程序,看Excel内存大小。 |