Objekt-Kopie durch ByVal-Aufruf

Bild

Betrifft: Objekt-Kopie durch ByVal-Aufruf
von: Arndt Brinckmann
Geschrieben am: 01.03.2005 09:01:08
Moin Leute,
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!!
Bild

Betrifft: AW: Objekt-Kopie durch ByVal-Aufruf
von: Hans W. Hofmann
Geschrieben am: 01.03.2005 21:23:11
Eine per Set zugewiesene Variable enthält einen Pointer auf ein Objekt. Wenn Du den kopierst, dann hast Du einen weiteren Pointer auf das gleiche Objekt. Ein Objekt müsste eine entsprechende Methode haben, um sich zu duplizieren. Ansonsten geht nur der Weg über die Zwischen-Ablage, copy&paste...
Gruß HW

WebSite:Excellenzen & Powerpoint interaktiv
PowerPoint-Anwendertreff: www.ppt-user.de

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Gültigkeit in Abhängigkeit von 2 Zellen"