Ich versuche, einen Baum (Art eines zusammengesetzten Musters tatsächlich) zu erstellen, aber ich kann einfach nicht die erstellten Elemente einer Klasse zu einer Sammlung von Elementen hinzufügen Elternteil.VBA: Hinzufügen von Klassenelementen zu einer Sammlung innerhalb der Klasse
Innerhalb der Klasse
Private pChildList As Collection
Private Sub Class_Initialize()
Set pChildList = New Collection
End Sub
Public Property Set ChildList(Value As CProduct)
pChildList.Add Value
End Property
Public Property Get ChildList() As Collection
ChildList = pChildList
End Property
Die Hauptfunktion
Set Pro = New CProduct
Set Child = New CProduct
Pro.ChildList.Add Child
So das Ergebnis Aufruf sollte in seiner pChildList Sammlung ein Elternteil (Pro) mit einem Kind sein, aber ich habe nur den Fehler, "Argument ist nicht optional".
Vielen Dank im Voraus!
Wow, vielen Dank! Was ich jetzt noch nicht bekomme, wenn ich den Code durchtrete, ist warum er die "Get" -Funktion trotzdem benutzt? Ich versuche, ein Element zu pChildList zu setzen (oder tatsächlich hinzuzufügen), muss das Programm zuerst die Sammlung an die Hauptfunktion zurückgeben und das Element dort hinzufügen, bevor die neue Sammlung an die Klasse zurückgegeben wird oder was ist das? – user2950764
Nun, der Code tut, was Sie sagen, wenn Sie 'Pro.ChildList.Add Child' geschrieben haben. Du hättest auch 'Set Pro.ChildList = Child 'schreiben können, um das Gleiche zu tun (angesichts des Codes, den du geschrieben hast, beachte, dass die' Set'-Eigenschaft, die du geschrieben hast, ungerade ist und nicht das tut, was erwartet werden könnte). –
Wenn ich ehrlich bin, habe ich nur die Set-Funktion gemacht, weil "Let", das ich für die anderen Variablen verwende, mir einen Fehler gab, es hieß nur "get, let or set" und set habe mir keinen Fehler gegeben . Was wäre also der bevorzugte Weg, pChildList außerhalb der Klasse zurückzugeben/darauf zuzugreifen? – user2950764