这是我第一次发帖加上业余程序员,所以如果您需要任何其他信息,请告诉我。我有以下问题:
使用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),但仍有大量内存累积。
感谢您的帮助:)
答案 0 :(得分:2)
删除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