如何从Excel VBA中释放vb.net类库对象

如何从Excel VBA中释放vb.net类库对象,excel,release,vba,Excel,Release,Vba,由于Excel VBA的性能对我的计算来说太差,我将代码迁移到VB.net类库中,并将其添加为Excel中的引用。我所有的读写函数都使用VBA,但处理是在dll中完成的 除了释放使用过的内存外,一切正常。我已经在VB.net类库中实现了以下函数 Public Sub releaseObject(ByRef obj As Object) Try System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ob

由于Excel VBA的性能对我的计算来说太差,我将代码迁移到VB.net类库中,并将其添加为Excel中的引用。我所有的读写函数都使用VBA,但处理是在dll中完成的

除了释放使用过的内存外,一切正常。我已经在VB.net类库中实现了以下函数

  Public Sub releaseObject(ByRef obj As Object)
    Try
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj)
        obj = Nothing
    Catch ex As Exception
        obj = Nothing
    Finally
        GC.Collect()
        GC.WaitForPendingFinalizers()
    End Try
End Sub
然而,Excel仍然保留着记忆。要最终释放我的对象,我必须做什么

谢谢,
Chris

但是Excel仍然保留内存
,什么让你相信它是真实的?当我与任务管理器检查Excel的内存消耗时,我可以看到,在我使用VBA创建类的对象之前,使用量大约是25MB。当我创建一个对象并进行计算时,消耗量会上升到150MB,即使我释放该对象,消耗量也会保持在这个水平。请参阅此链接。特别是
双点规则
关闭Excel并清理
感谢您提供此链接。你做了一个非常好的教程。但是,我使用VBA中在VB.net中创建的类库作为参考。因此,我不是使用互操作直接访问Excel。现在的问题是,我无法在VBA中释放我的类库对象。
但是Excel仍然保留内存
,什么让你相信它是真实的?当我与任务管理器检查Excel的内存消耗时,我可以看到,在我用VBA创建我的类对象之前,使用量大约是25MB。当我创建一个对象并进行计算时,消耗量会上升到150MB,即使我释放该对象,消耗量也会保持在这个水平。请参阅此链接。特别是
双点规则
关闭Excel并清理
感谢您提供此链接。你做了一个非常好的教程。但是,我使用VBA中在VB.net中创建的类库作为参考。因此,我不是使用互操作直接访问Excel。现在的问题是,我无法在VBA中释放我的类库对象。