这是我第一次发帖,而且我是一名业余程序员,所以如果您需要任何其他信息,请告诉我。我有以下问题:
使用 excel VBA 我连接到另一个程序(即 Aspen EDR)。为此,我安装了一个相应的插件。要访问 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 时,我可以看到释放了一点内存(3MB 的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)