Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Funktion mit Rückgabewert aufrufen

Funktion mit Rückgabewert aufrufen
15.10.2005 09:51:42
pauker
Hallo,
ich möchte eie Funktion aufrufen, die ein Ergebnis zurückgeben soll. Dazu habe ich folgenden Befehl benutzt (ergebnis = boolean, ErgebnisAuswahl = integer):
ergebnis = Funktion(ErgebnisAuswahl)
Die Funktion lautet:

Sub Funktion(Auswahl)
Dim Aktivierung As Boolean
MsgBox ("Diese Form ist noch in Bearbeitung")
Aktivierung = False
return aktivierung
End Sub

Dies funktioniert aber nicht - was macheich falsch?
Gruss
der pauker
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion mit Rückgabewert aufrufen
15.10.2005 09:54:14
Matthias
Hallo Pauker,

Sub Funktion(Auswahl As Integer) As Boolean
Dim Aktivierung As Boolean
MsgBox ("Diese Form ist noch in Bearbeitung")
Aktivierung = False
Funktion = Aktivierung
End Sub

Gruß Matthias
AW: Funktion mit Rückgabewert aufrufen
15.10.2005 10:52:05
pauker
Hallo Matthias,
nun bekomme ich eine andere Fehlermeldung - bei sub Funktion ... bekomme ich beim as Boolean die Meldung
Erwartet: Anweisungsende
Den Code habe ich in einem Modul stehen.
Gruss
der pauker
Anzeige
AW: Funktion mit Rückgabewert aufrufen
15.10.2005 11:18:38
Nepumuk
Hi,
das ist der Unterschied zwischen einer Sub und einer Function.
Public Function Meine_Funktion(Auswahl As Integer) As Boolean
    Dim Aktivierung As Boolean
    ' ...
    MsgBox ("Diese Form ist noch in Bearbeitung")
    Aktivierung = False
    ' ...
    Meine_Funktion = Aktivierung
End Function

Gruß
Nepumuk

Anzeige
AW: Funktion mit Rückgabewert aufrufen
15.10.2005 11:27:00
pauker
Hallo Nepumuk,
vielen Dank - jetzt klappt es!
gruss
der pauker
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Rückgabewerte in VBA-Funktionen korrekt nutzen


Schritt-für-Schritt-Anleitung

Um eine VBA-Funktion mit Rückgabewert korrekt zu erstellen, folge diesen Schritten:

  1. Erstelle eine Funktion: Beginne mit dem Schlüsselwort Function, gefolgt vom Namen der Funktion. Definiere die Parameter und den Rückgabewert.

    Public Function Meine_Funktion(Auswahl As Integer) As Boolean
  2. Deklariere Variablen: Innerhalb der Funktion, deklariere alle benötigten Variablen. Zum Beispiel:

    Dim Aktivierung As Boolean
  3. Führe die Logik aus: Implementiere die gewünschte Logik innerhalb der Funktion.

    MsgBox ("Diese Form ist noch in Bearbeitung")
    Aktivierung = False
  4. Gib den Rückgabewert zurück: Setze den Rückgabewert gleich der Variablen.

    Meine_Funktion = Aktivierung
  5. Beende die Funktion: Schließe die Funktion mit End Function.

    End Function
  6. Rufe die Funktion auf: Um die Funktion aufzurufen, verwende den Funktionsnamen und übergebe die notwendigen Argumente.

    ergebnis = Meine_Funktion(ErgebnisAuswahl)

Häufige Fehler und Lösungen

  • Fehler: "Erwartet: Anweisungsende"
    Ursache: Du hast möglicherweise eine Sub-Prozedur anstelle einer Function erstellt. Stelle sicher, dass du Function verwendest.

  • Fehler: Rückgabewert wird nicht erkannt
    Lösung: Achte darauf, dass du den Rückgabewert in der Funktion korrekt zuweist, z.B. Meine_Funktion = Aktivierung.

  • Fehler: Typkonflikt
    Stelle sicher, dass der Rückgabewert der Funktion mit dem Datentyp übereinstimmt, der im Funktionskopf definiert ist.


Alternative Methoden

Falls du keine Rückgabewerte benötigst, kannst du stattdessen eine Sub-Prozedur verwenden. Achte darauf, dass Sub-Prozeduren keinen Rückgabewert haben. Ein Beispiel könnte so aussehen:

Sub Meine_Sub(Auswahl As Integer)
    MsgBox ("Diese Form ist noch in Bearbeitung")
End Sub

Für Funktionen ohne Rückgabewert, kannst du auch Public Sub verwenden, um die Sichtbarkeit zu steuern.


Praktische Beispiele

  1. Einfache Funktion mit Rückgabewert:

    Public Function GibtWahrheitZurück() As Boolean
       GibtWahrheitZurück = True
    End Function
  2. Funktion mit mehreren Rückgabewerten: Verwende ein Array oder ein benutzerdefiniertes Datentyp-Objekt, um mehrere Werte zurückzugeben:

    Public Function MehrereRückgabewerte() As Variant
       Dim Ergebnisse(1 To 2) As Variant
       Ergebnisse(1) = 5
       Ergebnisse(2) = "Test"
       MehrereRückgabewerte = Ergebnisse
    End Function

Tipps für Profis

  • Verstehe den Unterschied zwischen Sub und Function: Während Sub keine Rückgabewerte hat, können Function-Prozeduren einen Wert zurückgeben.

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies kann helfen, Fehler frühzeitig zu erkennen.

  • Nutze die VBA-Dokumentation: Sie bietet wertvolle Informationen über Datentypen und Rückgabewerte.


FAQ: Häufige Fragen

1. Wie kann ich eine VBA-Funktion aufrufen?
Du kannst eine Funktion aufrufen, indem du den Namen der Funktion gefolgt von den erforderlichen Parametern verwendest, z.B. ergebnis = Meine_Funktion(5).

2. Was ist der Unterschied zwischen einer Sub und einer Function?
Eine Sub führt Aufgaben aus, gibt aber keinen Wert zurück. Eine Function kann einen Wert zurückgeben, der in Variablen gespeichert werden kann.

3. Warum bekomme ich die Fehlermeldung "Erwartet: Anweisungsende"?
Dies tritt häufig auf, wenn die Syntax der Funktion oder der Sub nicht korrekt ist. Überprüfe die Deklaration und stelle sicher, dass du die richtigen Schlüsselwörter verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige