如何从集合中删除当前循环的项目?我收到运行时错误13:在行wls.Remove vl上键入不匹配

Sub FocusOnH(ByRef vls As Collection)
    Dim vl As CVegetableLine
    For Each vl In vls
        If vl.hValue <> 0 Then
            vl.volume = vl.hValue
        Else
            vls.Remove vl
        End If
    Next vl
End Sub

最佳答案

Collection.Remove()方法采用key(如果.Add()方法提供)或index(默认情况下)作为参数,因此您不能将用户定义的对象作为Remove()方法的参数来解释类型不匹配错误。

进一步了解MSDN

如果要使用“用户定义的类型”,则实际上应该使用Dictionary集合。

要实现您想要的,请使用迭代器

dim i as long
for i = Collection.Count to 1 step -1
    'Collection.Remove i
next i

关于vba - 从集合中删除当前循环播放的项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23511563/

10-13 02:02