Ich habe ein Problem mit der Übergabe von Arrays mit einem benutzerdefinierten Datentyp an eine andere Prozedur. Die Übergabe muss ByVal erfolgen, da ich in der zweiten Prozedur eine Variante des ersten Arrays erstelen möchte.
Bei der Übergabe erscheint allerdings die Fehlermeldung: "Nur benutzerdefinierte Typen, die in öffentlichen Objektmodulen definiert sind, können in den oder aus dem Typ Variant umgewandelt werden oder an eine zur Laufzeit auflösbare Funktion weitergegeben werden."
Anbei ein kleines Pseudo-Beispiel, dass mein Problem verdeutlicht.
Type Person
Name As String
Alter As Integer
End Type
Public Gruppe(1 To 3) As Person
Sub InputPersonen()
Gruppe(1).Name = "Hans"
Gruppe(1).Alter = 64
Gruppe(3).Name = "Fritz"
Gruppe(3).Alter = 48
Gruppe(3).Name = "Martha"
Gruppe(3).Alter = 48
Variante Gruppe, 2, "Frida"
End Sub
Sub Variante(ByVal gr As Variant, Index As Integer, NeuerName As String)
gr(Index).Name = NeuerName
End Sub
Dazu habe ich diesen Beitrag gefunden.https://www.ms-office-forum.net/forum/showthread.php?t=200614
Leider bin ich aber nicht dazu fähig, den Code bei mir zu implementieren, weil ich ja ein Array von Personen habe und nicht eine Person zu einer Collection hinzufüge.
Vielen Dank für die Hilfe
Freundliche Grüsse
Manuel Roth