Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 438 bei Klassenobjektübergabe

Laufzeitfehler 438 bei Klassenobjektübergabe
20.08.2018 17:40:21
Haftenberger
Für eine Mitgliederkartei habe ich folgenden Code der nicht funktioniert:
Sub test()
Dim m As Mitglied
Dim t As Teilnehmer
Dim v As Veranstaltung
Set m = Construct.Mitglied("a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n",  _
CDate("1/1/2018"), CDate("1/1/2018"), "o", 1)
Set t = Construct.Teilnehmer(m, 60, CDate("1/1/2018"))
Set v = Construct.Veranstaltung("a", CDate("1/1/2018"), CDate("1/1/2018"), 60, 1)
v.TNanmelden (t)
End Sub
Die Klasse Veranstaltung beinhaltet folgende Methode die das Problem auslöst:
Public Sub TNanmelden(t As Teilnehmer)
ReDim Preserve Teilnehmende(UBound(Teilnehmende) + 1)
Set Teilnehmende(0) = t
End Sub
Die Klasse Veranstaltung hat als Atribut: Private Teilnehmende() As Teilnehmer
Das Modul Construct enthält die jeweiligen Konstruktoren für die Klassen Teilnehmer, Mitglied und Veranstaltung.Dieser deklariert jeweils die Attribut und initialisiert den array Teilnehmende() als Array mit einem nicht initialisierten Element, sprich Teilnehmende(0)=Nothing
Beim Übergeben des Teilnehmers tritt nun der Laufzeitfehler 438 auf. Lässt man die Argument übergabe weg und erstellt in der Methode selbst einen Teilnehmer, funktioniert alles problemmlos.
Ich bin nicht so erfahren, was Objektorientierte Programierung in VBA angeht. Habe ich etwas vergessen, was man bei der Übergabe von Objekten beachten muss?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
20.08.2018 18:14:53
Nepumuk
Hallo,
kannst du eine Mustermappe hochladen?
Gruß
Nepumuk
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
20.08.2018 20:16:43
Haftenberger
Na klar, anbei erfindest du eine Datei mit entsprechenden Modulen.
Danke fürs anschauen.
https://www.herber.de/bbs/user/123451.xlsm
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
20.08.2018 21:49:51
Planlos
Hallo
lass mal bei aufruf die Klammern weg.
statt
v.TNanmelden (t)
eher
v.TNanmelden t
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
21.08.2018 15:04:00
Haftenberger
Wut? Das war der Fehler?
Danke!
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
21.08.2018 15:04:02
Haftenberger
Wut? Das war der Fehler?
Danke!
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
21.08.2018 06:53:50
Luschi
Hallo Haftenberger,
das was Du uns da im Beispiel gezeigt hast, hat doch nichts mit Vba-Klassenprogrammierung zu tun.
Grundsatz:
- alle Variablen in der Klassse (Member der Klasse) sind 'Private'
- Zugriffssteuerung auf die Member erfolgt über Property-Methoden 'Get' & 'Let' und die sind 'Public'
Einen guten Einstieg zu diesem Thema bietet das Lernvideo:
https://www.video2brain.com/de/videotraining/excel-vba-fuer-profis-klassen-konzepte
oder Du schaust Dich mal auf YouTube um.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
21.08.2018 06:54:37
Luschi
Hallo Haftenberger,
das was Du uns da im Beispiel gezeigt hast, hat doch nichts mit Vba-Klassenprogrammierung zu tun.
Grundsatz:
- alle Variablen in der Klassse (Member der Klasse) sind 'Private'
- Zugriffssteuerung auf die Member erfolgt über Property-Methoden 'Get' & 'Let' und die sind 'Public'
Einen guten Einstieg zu diesem Thema bietet das Lernvideo:
https://www.video2brain.com/de/videotraining/excel-vba-fuer-profis-klassen-konzepte
oder Du schaust Dich mal auf YouTube um.
Gruß von Luschi
aus klein-Paris
AW: Laufzeitfehler 438 bei Klassenobjektübergabe
21.08.2018 06:57:22
Luschi
Hallo Haftenberger,
das was Du uns da im Beispiel gezeigt hast, hat doch nichts mit Vba-Klassenprogrammierung zu tun.
Grundsatz:
- alle Variablen in der Klassse (Member der Klasse) sind 'Private'
- Zugriffssteuerung auf die Member erfolgt über Property-Methoden 'Get' & 'Let' und die sind 'Public'
Einen guten Einstieg zu diesem Thema bietet das Lernvideo:
https://www.video2brain.com/de/videotraining/excel-vba-fuer-profis-klassen-konzepte
oder Du schaust Dich mal auf YouTube um.
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige