Problems in copying a Collection to another and removing elementsfrom two Collections
Hi, Peter,
thanks for the answers:
1. yes I forgot to specify that I was referring to a collection of
objects. Which are the other way to do a "deep" copy which you are
referring to? Could you give me some details?
2. Oh, right, didn't think of that :) thanks!
Best Regards
Sergio
On 11 Mar, 17:32, "Peter T" <peter_t@discussions wrote:
Re 1.
Yes, that is assuming your collection refers to objects (well, there are
other ways but no need to go there).
Re 2.
Loop backwards
For I= c1.Count to 1 step -1
Regards,
Peter T
"deltaquattro" wrote in message
...
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
|