【发布时间】:2012-11-03 13:29:24
【问题描述】:
我有一个程序,我在 VBA 中创建了几个不同的集合。程序完成后,我需要删除每个集合中的记录。我已经能够使用以下代码静态删除集合:
Sub Empty_Collections()
Dim Count As Integer
Dim i As Long
Count = Managers.Count
For i = 1 To Count
Managers.Remove (Managers.Count)
Next i
Count = FS.Count
For i = 1 To Count
FS.Remove (FS.Count)
Next i
Count = Staff.Count
For i = 1 To Count
Staff.Remove (Staff.Count)
Next i
Count = Clusters.Count
For i = 1 To Count
Clusters.Remove (Clusters.Count)
Next i
End Sub
但是,由于我将来可能会添加其他集合,是否可以有类似这样的代码:
Dim Item As Collection
Dim Count As Integer
Dim i As Long
For Each Item In Worksheets
Count = Item.Count
For i = 1 To Count
Item.Remove (Item.Count)
Next i
Next
【问题讨论】:
-
更容易做到(例如)
Set Managers = New Collection -
如果您希望能够跟踪所有收藏,那么您可以随时将它们放在一个收藏中。
-
除非我误解了你在做什么,除非你有循环引用,否则程序完成时应该不需要清理。垃圾收集器应该为你处理好这些。
-
Tim 在第一条评论中所说的另一种方式:
Set Managers = Nothing
标签: vba collections excel