Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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

Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler

Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler
19.01.2020 13:59:28
filip
Hallo zusammen,
ich habe hier ein bislang unbekanntes Problem:
Ich habe eine Funktion in einem Tabellblatt untergebracht, die ein selbstdefiniertes Klassenmodul zurück gibt.
also mein Klassenmodul heisst clsTestKlasse
Dann habe ich ein Modul in dem mein Sub Main existiert. In diesem Sub Main rufe ich nun auf :

Sheets("MeinTestSheet").test

Die Funktion test gibt nichts zurück und schreibt nur ein debug.print.
Neben der Funktion test, die ich aufrufe, gibt es eine zweite Funktion, die ich nciht aufrufe.
Sie ist wie folgt definiert :

Function machwas() As clsTestKlasse
Debug.Print "Hallo World"
End Function


Sobald diese Funktion in dem Sheet steht, bekomme ich beim Aufruf von test die Fehlermeldung :
"Anwndungs- oder Objektdefinierter Fehler"
Ändere ich die Rückgabe der Funktion machwas auf zb String , gibt es keine Probleme.
Warum kann VBA die eigene Klasse aus dem Sheet nicht in mein Modul zurückgeben , zumal ich die entsprechende Punktion garnicht aufrufe ?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler
19.01.2020 14:09:37
Nepumuk
Hallo filip,
lade mal eine Mustermappe hoch in der man das nachvollziehen kann.
Gruß
Nepumuk
AW: Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler
19.01.2020 15:21:45
Nepumuk
Hallo filip,
das funktioniert schon, du musst nur die Methode von Public auf Friend oder Private ändern. Damit ist sie allerdings nur in Klassenmodulen sichtbar, nicht in Standardmodulen.
Ich hab dir ein bisschen was reingebastelt:
https://www.herber.de/bbs/user/134520.xlsm
Gruß
Nepumuk
Anzeige
AW: Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler
19.01.2020 16:37:14
filip
Ok vielen dank... die einzig entschiedene Änderung ist wohl das Schlüsselwort Friend vor der Funktion machwas... wieso geht nicht public ? Wieso muss es friend sein ?
AW: Funktion gibt Klassenmodul aus Sheet zurück: Anwendungsfehler
19.01.2020 16:49:07
Nepumuk
Hallo filip,
weil private Klassen in öffentlichen Klassen nicht als Parameter zugelassen sind. Warum das so ist, musst du die Programmierer von VBA fragen. Du könntest die Klasse clsTest öffentlich machen, dann kannst du die Prozedur "machwas" auch öffentlich machen.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige