这是我第一次使用这样的论坛。我有和这里完全相同的问题: How to release an object and clear memory in VBA
在这个线程中,不幸的是问题没有解决......
使用 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 个),但仍然有很多内存在积累。
此外,当不使用“现在”时,它不起作用,并且在执行 Set ObjEDR = BJACApp 时出现“运行时错误'424':需要对象”
我还阅读了可能导致停留内存增加的“指针”,但我怎样才能找到并清除/删除它们?有人有想法吗?我真的很感激!