Forcer La Collecte Des Ordures
Est-il un moyen de forcer la collecte des ordures dans VBA/Excel 2000?
Cette question se réfère au langage de Macro dans Excel.
Pas à l'aide de VB .NET pour manipuler Excel. Afin de GC.collect() ne fonctionne pas
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas profiter de la collecte des ordures fourni par le .NET Framework lors de l'utilisation de droite VBA. Peut-être cet article par Eric Lippert sera utile
.Dispose()
méthode est appelée à partir de VBA.Vous ne pouvez pas forcer GC en VBA, mais c'est bon à Rien les variables globales.
L'article mentionné par rd7 dit que c'est inutile de Rien les variables locales avant d'aller hors de portée, mais ne parle pas de variables globales.
En VBA les variables globales définies dans un module de rester en vie grâce à l'ensemble de la Excel session, c'est à dire jusqu'à ce que le document contenant le module VBA qui les définit fermé.
Donc, ne pas inutiles
Set O = Nothing
lorsque O est local, mais le faire quand il est mondial.VBA/Excel n'a pas de collecte des ordures, comme de vieux VB. Au lieu de GC, il utilise le comptage de référence. La mémoire est libérée lorsque vous définissez un pointeur à rien (ou lorsque la variable est hors de portée). Comme dans les vieux VB cela signifie que les références circulaires ne sont jamais libérés.