Benutzerdefinierte Typen in Collections
12.08.2003 09:53:10
Marco
wie bekomme ich benutzerdefinierte Typen (Records, Strukturen, wie auch immer
man sie nenen will) in Collections. Oder können VBA Collections nur
einfache Datentypen ("Sting, Integer usw...)aufnehmen ?
Dieser Quelltext steht in einem KlassenModul:
Private Type t_fahrzeug
colorindex As Integer
pos_nr As Integer
y_nr As String
verwendung As String
End Type
Private fahrzeuge As Collection
' Kontruktor
Public Sub Class_initialize()
Call SetFahrzeugData
End Sub
' Setzt memebervariable fahrzeuge
Private Sub SetFahrzeugData()
Dim i As Integer
Dim fahrzeug As t_fahrzeug
Set fahrzeuge = New Collection
Sheets("Fzg-Uebersicht").Activate
i = 1
Do Until ActiveCell.Value = ""
fahrzeug.colorindex = Range("quelle_color").Offset(i, 0).Value
fahrzeug.y_nr = Range("quelle_ynr").Offset(i, 0).Value
fahrzeug.verwendung = Range("quelle_verwendung").Offset(i, 0).Value
fahrzeug.pos_nr = Range("quelle_pos").Offset(i, 0).Value
' fahrzeug in Collection aufnehmen
----> fahrzeuge.Add fahrzeug -----> hier ist mein Problem !!
' nächste Zeile
ActiveCell.Offset(1, 0).Activate
Loop
Debug.Print ("Es wurden " & fahrzeuge.Count & " Fahrzeuge ermittelt")
End Sub
Als Fehlermeldung erscheint immer:
----------------------------------
Nur benutzerdefinierte Typen, die in öffentlichen Objektmodulen definiert wurden, können in den oder aus dem Typ Variant umgewandelt werden, oder an eine zur Laufzeit auflösbare Funktion weitergeleitet werden.