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

Range einer Funktion übergeben

Forumthread: Range einer Funktion übergeben

Range einer Funktion übergeben
24.09.2008 21:33:00
Markus
Hallo Leute,
ich möchte eigentlich etwas ganz einfaches tun, scheitere aber schon daran. Eigentlich möchte ich der Funktion >Test

Public Function Test(Bereich As Range) As Boolean
Dim c As Range
For Each c In Bereich
Debug.Print c.Value
Next c
Test = False
End Function


Wenn ich die Funktion von einem Sheet aus aufrufe (z.B. =Test(A1:A4)) gibt es einen Fehler. Ich brauche Eure unkomplizierte Hilfe.
Gruß Markus

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range einer Funktion übergeben
24.09.2008 21:48:07
Andi
Hi,
was für einen Fehler bekommst Du denn?
Bei mir funtioniert das problemlos. Allerdings steht in der Zelle dann natürlich nur Falsch, weil Du ja am Ende der Function den Wert False zuweist.
Die Werte aus A1:A4 stehen aber korrekt im Direktfenster.
Schönen Gruß,
Andi
Anzeige
AW: Range einer Funktion übergeben
24.09.2008 22:12:00
Markus
Hi Leute,
vielen Dank für die Tipps. Ich habe mich natürlich selber ausgetrickst (wer Augen hat zu sehen ...)
Gruß Markus
AW: Range einer Funktion übergeben
24.09.2008 21:49:38
Gerd
Hallo Markus,
wenn Du im Tabellenblatt, außerhalb von a1:a4,
=Test(A1:A4) eingibst u. die Funktion sich in einem allgemeinen Modul befindet, gibt diese
in der Eingabezelle Falsch zurück u. das Direktfenster enthält die vier Zellenwerte.
Gruß Gerd
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Range einer Funktion übergeben in Excel


Schritt-für-Schritt-Anleitung

Um eine Funktion in Excel zu erstellen, die einen Bereich (Range) akzeptiert und eine boolesche Rückgabe liefert, kannst Du die folgende Vorgehensweise nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Public Function Test(Bereich As Range) As Boolean
       Dim c As Range
       For Each c In Bereich
           Debug.Print c.Value
       Next c
       Test = False
    End Function
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Kehre zu Deinem Excel-Arbeitsblatt zurück und gib in einer Zelle die Funktion ein, z.B. =Test(A1:A4).

Wenn Du diese Funktion aufrufst, wird der Wert "Falsch" zurückgegeben, da am Ende der Funktion Test = False steht. Die Werte aus dem angegebenen Bereich werden jedoch im Direktfenster ausgegeben.


Häufige Fehler und Lösungen

Ein häufiger Fehler, den Du möglicherweise erlebst, ist, dass die Funktion nicht die erwarteten Ergebnisse liefert. Hier sind einige Lösungen:

  • Fehler: Die Funktion gibt einen unerwarteten Wert zurück
    Stelle sicher, dass sich die Funktion im richtigen Modul befindet (allgemeines Modul) und dass Du den korrekten Bereich übergibst.

  • Fehler: Die Werte werden im Direktfenster nicht angezeigt
    Überprüfe, ob Du den VBA-Editor geöffnet hast und das Direktfenster sichtbar ist (Strg + G).

  • Fehler: Rückgabewert ist immer "Falsch"
    Dies ist normal, da der Rückgabewert fest auf False gesetzt ist. Um funktionale Logik hinzuzufügen, kannst Du die Bedingung anpassen.


Alternative Methoden

Wenn Du eine vba boolean function erstellen möchtest, die dynamischere Ergebnisse liefert, kannst Du beispielsweise die Summe der Werte im Bereich berechnen und basierend darauf den Rückgabewert anpassen:

Public Function Test(Bereich As Range) As Boolean
    Dim Summe As Double
    Summe = Application.WorksheetFunction.Sum(Bereich)
    If Summe > 0 Then
        Test = True
    Else
        Test = False
    End If
End Function

Diese Funktion gibt True zurück, wenn die Summe der Werte im Bereich größer als 0 ist.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Nutzung der excel range function:

  1. Einfaches Beispiel
    Wenn Du die Funktion =Test(A1:A4) verwendest und die Zellen A1 bis A4 Werte wie 1, 2, 3 und 4 enthalten, wird die Funktion True zurückgeben, wenn Du die überarbeitete Funktion mit der Summenlogik nutzt.

  2. Verwendung in Kombination mit anderen Funktionen
    Du kannst die Test-Funktion auch in Kombination mit anderen Excel-Funktionen verwenden, z.B. in einer Wenn-Dann-Abfrage:
    =WENN(Test(A1:A4); "Positiv"; "Negativ")


Tipps für Profis

  • Nutze Debugging: Verwende Debug.Print, um Zwischenergebnisse zu prüfen, während Du Deine vba boolean function entwickelst.
  • Vermeide Fehler: Stelle sicher, dass der übergebene Bereich gültige Zellen enthält, um Laufzeitfehler zu vermeiden.
  • Modularität: Halte Deine Funktionen modular, damit Du sie leicht modifizieren und wiederverwenden kannst.

FAQ: Häufige Fragen

1. Frage
Warum gibt die Funktion immer "Falsch" zurück?
Antwort: Die Funktion gibt "Falsch" zurück, weil am Ende Test = False gesetzt ist. Du kannst die Logik anpassen, um je nach Bedarf unterschiedliche Rückgabewerte zu erhalten.

2. Frage
Kann ich die Funktion auch in einer anderen Excel-Version verwenden?
Antwort: Ja, die oben gezeigte Methode funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen.

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