【发布时间】:2020-07-31 15:00:31
【问题描述】:
我在With 语句中使用了Exit Sub 来避免下面代码中的Set 语句。这会清除对象还是有办法做到这一点?
Dim FolderPathStr As String
With CreateObject("Scripting.FileSystemObject")
If .FolderExists(FolderPathStr) = False Then
MsgBox "Folder does not Exist"
Exit Sub
End If
End With
【问题讨论】:
-
不知道你所说的“清除对象”是什么意思,但是VBA是垃圾收集的,应该没有问题。
-
@JohnColeman - 我很确定(在多次听到 Mathieu Guindon 以及 here 之后),VBA 是引用计数的,而不是垃圾收集的。
-
@BigBen 引用计数是管理垃圾收集的一种可能方式。
-
我想我们只是在谈论语义然后哈哈。
-
@BigBen 重点是,与需要显式释放内存的 C 语言不同,VBA 运行时会自动为您完成。与使用 VBA 的大多数事情一样,它的方法是 1990 年代的技术,因此它当然没有最先进的垃圾收集。
标签: vba