从集合中删除项目

通过调用 .Remove 方法将项目从 Collection 中删除:

句法:

.Remove(index)
参数 描述
指数 要从 Collection 中删除的项目。如果传递的值是数字类型或带有数字子类型的 Variant,则它将被解释为数字索引。如果传递的值是包含字符串的 StringVariant,则它将被解释为键。如果传递了 Collection 中不存在的 String 键,则会产生运行时错误 5:无效的过程调用或参数。如果传递的数字索引在 Collection 中不存在,则会产生运行时错误 9:下标超出范围

笔记:

  • Collection 中删除项目将更改 Collection 中所有项目的数字索引。使用数字索引和删除项目的 For 循环应该向后运行 (Step -1)以防止下标异常和跳过的项目。
  • 通常应该从 For Each 环中移除物品,因为它会产生不可预测的结果。

样品用法:

Public Sub Example()
    Dim foo As New Collection
    
    With foo
        .Add "One"
        .Add "Two", "Second"
        .Add "Three"
        .Add "Four"
    End With
     
    foo.Remove 1            'Removes the first item.
    foo.Remove "Second"     'Removes the item with key "Second".
    foo.Remove foo.Count    'Removes the last item.
    
    Dim member As Variant
    For Each member In foo
        Debug.Print member  'Prints "Three"
    Next
End Sub