Liberar un objeto en For Each??
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
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
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
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