本人在模块中使用了几个全局动态数组:
   Public vvID0() As Long
   Public meID0() As Long
   Public mysID() As Long
   Public ysID() As Long
   Public DelID() As Long
---------------------------------
函数中
运行前定义为:
   ReDim vvID0(100)
   ReDim meID0(100)
   ReDim DelID(100)
   ReDim mysID(1000)
   ReDim ysID(1000)运行结束后重定义
   ReDim vvID0(0)
   ReDim meID0(0)
   ReDim DelID(0)
   ReDim mysID(0)
   ReDim ysID(0)
 
   但第一次调用函数后,程序所占内存为100M,第二次调用函数后,程序所占内存为150M,第三次调用函数后,程序所占内存为峡220M,这样每调一次函数后,程序所占内存就大增,如何处理这样情况,请教各位高手!多谢!!!

解决方案 »

  1.   

    在结束语句末加一句 End 看看
      

  2.   

    Erase 语句      重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。语法Erase arraylist所需的 arraylist 参数是一个或多个用逗号隔开的需要清除的数组变量。说明Erase 根据是固定大小(常规的)数组还是动态数组,来采取完全不同的行为。Erase 无需为固定大小的数组恢复内存。Erase 按下表来设置固定数组的元素:数组类型 Erase 对固定数组元素的影响 
    固定数值数组 将每个元素设为 0。 
    固定字符串数组(长度可变) 将每个元素设为零长度字符串 ("")。 
    固定字符串数组(长度固定) 将每个元素设为 0。 
    固定 Variant 数组 将每个元素设为 Empty。 
    用户定义类型的数组 将每个元素作为单独的变量来设置。 
    对象数组 将每个元素设为特定值 Nothing。 
    Erase 释放动态数组所使用的内存。在下次引用该动态数组之前,程序必须使用 ReDim 语句来重新定义该数组变量的维数。