这是我第一次发布加上我是业余程序员,所以如果您需要任何其他信息,请告诉我.我有以下问题:
使用excel VBA我连接到另一个程序(即Aspen EDR).为此,我安装了一个相应的Add-In.访问Aspen EDR我需要添加一个对象.完成后我想释放对象以节省一些内存.我试过的第一件事就是:
Dim ObjEDR As BJACApp
Dim Path As String
Path = 'assume this is the correct path to the file i want to open
Set ObjEDR = New BJACApp ' Create the BJAC object
If Not ObjEDR.FileOpen(Path) Then
MsgBox "Can't open file!"
End If
'...
Set ObjEDR = Nothing
我的问题是:在我没有设置对象之后,excel不会释放内存(正如我在任务管理器中看到的那样).当然经过几百次迭代(我必须打开很多这些文件)后,我收到一条错误信息,excel是内存不足.
我读了几个线程,显然没有什么只删除对象的某种引用而不是对象本身,所以我尝试添加fileclose
'...
ObjEDR.FileClose
Set ObjEDR = Nothing
当执行FileClose时,我可以看到释放了一点内存(3,5中的0,5),但仍有大量内存累积.
谢谢您的帮助 :)
最佳答案 删除New关键字,没有必要.
Dim ObjEDR As BJACApp
Dim Path As String
Path = 'assume this is the correct path to the file i want to open
Set ObjEDR = BJACApp ' Create the BJAC object
If Not ObjEDR.FileOpen(Path) Then
MsgBox "Can't open file!"
End If
'...
ObjEDR.FileClose
Set ObjEDR = Nothing