Q
強制垃圾回收
5
A
回答
11
你不能直接使用VBA時.NET Framework提供垃圾收集的優勢。 Perhaps this article通過埃裏克利珀將有助於
3
VBA/Excel沒有垃圾收集,像老VB。它使用引用計數來代替GC。當您將指針設置爲空(或變量超出範圍時)時,內存將被釋放。就像在舊的VB中一樣,它意味着循環引用永遠不會被釋放。
+0
此處有一個已知問題的示例:https://support.microsoft.com/en-us/help/280454/password-prompt-for-vba-project-appears-after-excel-quits – 2017-04-22 19:31:50
3
你不能強迫GC在VBA,但它是很好的設置爲Nothing全局變量。
通過KD7提到的文章說了也沒用,他們走出去的範圍之前設置爲Nothing局部變量,但不會談論全局變量。
在VBA的模塊中定義的全局變量在整個的Excel會話仍然存活,即直到含有VBA模塊定義它們關閉該文檔。
所以不要把無用Set O = Nothing
當O爲局部的,但做到這一點時,它的全球性的。
相關問題
- 1. java垃圾回收
- 2. Java:垃圾回收
- 3. Python垃圾回收
- 4. C#垃圾回收
- 5. Erlang垃圾回收
- 6. java - 垃圾回收
- 7. JDBC垃圾回收
- 8. JS垃圾回收
- 9. requestAnimationFrame垃圾回收
- 10. vb.net垃圾回收
- 11. ColdFusion垃圾回收
- 12. PhoneGap垃圾回收
- 13. Chrome垃圾回收
- 14. Java:垃圾回收
- 15. Javascript垃圾回收
- 16. Android應用程序開發 - 強制垃圾回收器
- 17. 在iOS上強制垃圾回收JavaScriptCore虛擬機
- 18. 如何驗證/強制課程被垃圾回收
- 19. 如何強制無法取消對象的垃圾回收?
- 20. 回收垃圾回收問題
- 21. 垃圾回收無法回收BitmapImage?
- 22. 刪除根垃圾回收
- 23. AIR for iOS垃圾回收
- 24. Java垃圾回收器
- 25. Rebol&Red垃圾回收
- 26. PHP5:SplObjectStorage垃圾回收
- 27. 線程垃圾回收
- 28. 噓,垃圾回收器
- 29. python對象,垃圾回收
- 30. Spidermonkey和垃圾回收
我不知道VBA使用了引用計數,並且不支持清理循環引用。這可能是下層問題。 最初的問題是,有時工作簿在關閉和在類的析構函數中被解除引用時沒有正確關閉。我認爲問題來自於對象尚未收集。最有可能的是我有一些循環引用了一些有時候會發揮作用的輪子。謝謝你的提示。 – Zen 2009-11-21 15:01:18
我同意,你不能直接從VBA做到這一點。但是如果你引用一個COM庫,你實際上可以利用.NET的GC。請參閱[**我的答案**](http://stackoverflow.com/questions/20398477/how-to-set-application-name-in-adodb-connection-string/20406284#20406284),特別是有關'.Dispose()'從VBA調用的方法。 – 2014-02-03 12:50:58