wulfgang Geschrieben 5. April 2010 Geschrieben 5. April 2010 Hallo, ich habe ein kleines Problem in VBA. Wollte ein Sub schreiben, das mir ein bereits vorhandenes Objekt kopiert. Ich erhalte als Fehlermeldung: Zitat Object doesn't support this property or method. Was die Meldung bedeutet weiß ich. Nur weiß ich nicht, warum sie dort erscheint...Sub SubTestCopyObjects() Dim colObjects As Collection Dim Object1 As Class1 Dim Object2 As Class1 Set colObjects = New Collection Set Object1 = New Class1 colObjects.Add Object1 Set Object2 = New Class1 Object2.CopyObjects (Object1) End Sub Mein Klassenmodul Private iValue As Double Private jValue As Double Private kValue As Double Sub setValues(i As Double, j As Double, k As Double) iValue = i jValue = j kValue = k End Sub Sub CopyObjects(OldObject As Class1) iValue = OldObject.iValue jValue = OldObject.iValue kValue = OldObject.iValue End Sub Zitieren
MartinSt Geschrieben 5. April 2010 Geschrieben 5. April 2010 zwar ungetestet, aber versuche malcall Object2.CopyObjects(Object1) Zitieren
wulfgang Geschrieben 5. April 2010 Autor Geschrieben 5. April 2010 Hallo, also so funktioniert es:Private iValue As Double Private jValue As Double Private kValue As Double Sub setValues(i As Double, j As Double, k As Double) iValue = i jValue = j kValue = k End Sub Public Function FuncGetiValue() As Double FuncGetiValue = iValue End Function Public Function FuncGetjValue() As Double FuncGetjValue = jValue End Function Public Function FuncGetkValue() As Double FuncGetkValue = kValue End Function Sub CopyObjects(OldObject As Class1) iValue = OldObject.FuncGetiValue jValue = OldObject.FuncGetjValue kValue = OldObject.FuncGetkValue End Sub Sub SubTestCopyObjects() Dim colObjects As Collection Dim Object1 As Class1 Dim Object2 As Class1 Set colObjects = New Collection Set Object1 = New Class1 colObjects.Add Object1 Set Object2 = New Class1 Call Object2.CopyObjects(Object1) End Sub Weiß jemand vielleicht noch eine Möglichkeit, wie ich ohne diese öffentlichen Get-Methoden auskomme? Zitieren
MartinSt Geschrieben 5. April 2010 Geschrieben 5. April 2010 Ich kenne mich eher in VB als in VBA aus, daher weiß ich nicht ob es auch in VBA geht, aber in VB würde ich es über Members und Public/Private property Get bzw. Let machen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.