我已经无数次地读过你应该总是在项目结束时释放对象,例如:
Sub Test()
Dim obj As Object
Set obj = GetObject(, "xxxxxx.Application")
' Code your project...
Set obj = Nothing
End Sub
但是,我使用一个调用Excel对象的程序。我经常在很多不同的例程中调用Excel的对象,我决定使函数更简单:
Public Function appXL As Object
Set appXL = GetObject(, "Excel.Application")
End Function
虽然这是一个非常简单的函数,但是我无法在我使用的任何子例程的末尾释放对象appXL
,至少据我所知。但我有一个更大的担忧是使用appXL
100次以上的子程序实际上抓取对象的次数相同。
老实说,我不明白为什么这会是一个大问题,因为我使用GetObject
而不是CreateObject
。每次调用函数时,我都不是在创建一个新的Excel实例,所以在编码时我应该关注这个问题吗?我是否只需完全摆脱该函数并在我使用的每个例程上声明appXL
,以便我最终能够释放它?