Ich habe zwei Sammlungen - collection1
und collection2
eine Sammlung Klonen
collection1
hat eine Reihe von Klassenobjekten in ihr und ich versuche collection2
mit Kopien der gleichen Objekte mit dem folgenden Befehl zu füllen:
Set collection2 = collection1
Dies gibt mir nicht das gewünschte Ergebnis, obwohl, weil, wenn ich
collection2.Remove 1
verwenden es t entfernt Er Objekt bei Index 1 von beide Sammlungen.
Unten finden Sie den vollständigen Code, die ich hoffte, würde die Ausgabe 10
Objekte in collection1
, nachdem der Code unten versucht, ein von collection2
Sub test()
Dim collection1 As Collection
Dim collection2 As Collection
Dim testObj As Worksheet
Dim i As Integer
Set collection1 = New Collection
Set collection2 = New Collection
For i = 1 To 10
collection1.Add testObj
Next i
Set collection2 = collection1
collection2.Remove 1
Debug.Print collection1.Count
End Sub
ich zu entfernen und es funktioniert, aber ich bin auf der Suche sowohl Füllung zu vermeiden Sammlungen eins nach dem anderen, wenn möglich:
...
For i = 1 To 10
collection1.Add testObj
collection2.Add testObj
Next i
...
Der Grund, warum ich auf diese Option nicht so scharf darauf bin, ist, weil letztlich mehrere Sammlungen zu verwenden beabsichtige ich, manipulieren sie eine Ich nehme Kopien an verschiedenen Stellen, damit ich am Ende viele Loops in meinem Code habe, anstatt nur einen.
Ich denke, Sie meinen 'Set collection2 = collection1' vielleicht ... – Rdster
Es gibt keine Kopierfunktion für eine Sammlung. Dies: Set collection2 = collection2 macht nur einen zweiten Verweis auf das Collection-Objekt. Ihre beste Wette ist, was Sie vermeiden möchten, IE gleichzeitig zu füllen. – Sorceri
@Rdster das war nur ein Tippfehler, korrigiert jetzt – CallumDA