Liberar un objeto en For Each??

mope
20 de Enero del 2005
Hola, mi duda creo que es simple. Utilizo bloques For Each para recorrer colecciones de objetos. He comprobado que al salir del For Each ... el objeto que utilizo para recorrer se libera automaticamente ( apuntando a Nothing). Por ejemplo:

Dim objQuery As Object
For Each objQuery In colec_Queries
....
Next
'aqui no necesito hacer Set objQuery = Nothing

Pero si salgo de la funcion que contiene el for, tendria que liberarlo antes?? Esta manera de salir de la funcion es recomendable??
Public Function Mia (.....) As String
Dim objQuery As Object
For each objQuery In colec_Queries
If (objQuery.Name = "Buscado") Then
Mia = objQuery.Name
Set objQuery = Nothing ' ???????
Exit Fuction
End If
Next
End Function


l_islnd
20 de Enero del 2005
La forma es correcta, pero esta otra es aún mejor:

Public Function Mia (.....) As String
Dim objQuery As Object
For each objQuery In colec_Queries
If (objQuery.Name = "Buscado") Then
Mia = objQuery.Name
Exit For
End If
Next
Set objQuery = Nothing ' Esto no es necesario dado que al ser un objeto local se libera al salir de la funcion
End Function

Saludos!!
l_island