D
deltaquattro
Hi,
two questions on Collections:
1. in VBA, the only way to copy the items (not just the references) of
a collection c1 to another collection c2 is to go through each element
of c1 with a For Each Next and Add each item to c2, right?
2. I have a collection c1 containing some objects to be deleted (the
ones for which the Defective property is True). I want to delete them
from c1 and at the same time to delete the objects in the same
position from another collection c2. See code below:
Sub RemoveDefectivesfromColns(c1 As Collection, c2 As Collection)
Dim obj as Object, I As Long
For I=1 to c1.Count
Set obj =c1(I)
If obj.Defective Then
c1.Remove I
c2.Remove I
End If
Next I
End Sub
Problems: number of elements in c1 and c2 is changing as the cycle
goes on, so sooner or later the Remove method will fail (because I
exceeds the number of remaining elements in c1 and c2). How can I
solve this? Also, is there a way to do this with a For Each In Next?
Would it be faster? Thanks,
Best Regards
deltaquattro
c1.Add Item:="woof"
Set c2=c1
makes
two questions on Collections:
1. in VBA, the only way to copy the items (not just the references) of
a collection c1 to another collection c2 is to go through each element
of c1 with a For Each Next and Add each item to c2, right?
2. I have a collection c1 containing some objects to be deleted (the
ones for which the Defective property is True). I want to delete them
from c1 and at the same time to delete the objects in the same
position from another collection c2. See code below:
Sub RemoveDefectivesfromColns(c1 As Collection, c2 As Collection)
Dim obj as Object, I As Long
For I=1 to c1.Count
Set obj =c1(I)
If obj.Defective Then
c1.Remove I
c2.Remove I
End If
Next I
End Sub
Problems: number of elements in c1 and c2 is changing as the cycle
goes on, so sooner or later the Remove method will fail (because I
exceeds the number of remaining elements in c1 and c2). How can I
solve this? Also, is there a way to do this with a For Each In Next?
Would it be faster? Thanks,
Best Regards
deltaquattro
c1.Add Item:="woof"
Set c2=c1
makes