Objekt-Kopie durch ByVal-Aufruf
01.03.2005 09:01:08
Arndt
Folgendes kleine Routine sollte eigentlich zwei unterschiedliche Objekte erstellen. Nur sieht dies in Wirklichkeit anders aus. Hat jemand eine Idee,
wie ich eine echte Objektkopie anders erzeugen kann?
Code:
Public
Function copyObject(ByVal aObj As Object) As Object
Set copyObject = aObj
End Function
Public
Sub testObj()
'UD-Klassen
Dim Krit1 As New Kriteria, Krit2 As New Kriteria
Dim Crit1 As New Criterium, Crit2 As New Criterium
Dim aRange As Range
Set aRange = ThisWorkbook.Sheets("pl-data").Range("id_10100")
Crit1.create aRange, xlGreater, "ii"
Crit2.create aRange, xlEqual, "xx"
Krit1.addCriterium Crit1
'Kopiere object
Set Krit2 = copyObject(Krit1)
Krit2.addCriterium Crit2
'Lassen wir die Objekte mal sprechen
Debug.Print Krit1.toString
Debug.Print Krit2.toString
End Sub
Und als Ausgabe kommt dann:
Krit1: (class > ii) AND (class = xx)
Krit2: (class > ii) AND (class = xx)
Die Objekte sind also ein und dasselbe!!