Fehlerwert in Excel VBA ausgeben
Schritt-für-Schritt-Anleitung
Um in einer benutzerdefinierten VBA-Funktion einen Fehlerwert auszugeben, der von Excel als Fehler interpretiert wird, kannst du die Funktion CVErr verwenden. Folge diesen Schritten:
-
Öffne Excel und gehe in den VBA-Editor (Alt + F11).
-
Erstelle ein neues Modul unter "Einfügen" > "Modul".
-
Füge den folgenden Code ein:
Function erstedrei(ByVal text As String) As Variant
If Len(text) >= 3 Then
erstedrei = "blub"
Else
erstedrei = CVErr(xlErrNA) ' Gibt einen Fehlerwert aus, der als Fehler interpretiert wird
End If
End Function
-
Speichere das Modul und schließe den VBA-Editor.
-
Nutze die Funktion in einer Excel-Zelle, z.B. =erstedrei(A1).
Wenn der Wert in A1 kürzer als 3 Zeichen ist, wird #NV angezeigt, und die Funktion ISTFEHLER() wird den Fehler korrekt erkennen.
Häufige Fehler und Lösungen
-
Problem: Die Funktion gibt #NV zurück, aber ISTFEHLER() erkennt den Fehler nicht.
- Lösung: Stelle sicher, dass du
CVErr(xlErrNA) anstelle von "#NV" verwendest. CVErr gibt einen echten Fehlerwert zurück, der von Excel erkannt wird.
-
Problem: Der Rückgabewert ist nicht das, was erwartet wurde.
- Lösung: Überprüfe die Eingabewerte und stelle sicher, dass die Bedingungen in deiner Funktion korrekt sind.
Alternative Methoden
Anstelle von CVErr(xlErrNA) kannst du auch andere Fehlerwerte mit CVErr ausgeben, je nach Bedarf. Hier sind einige Beispiele:
CVErr(xlErrDiv0) für Division durch Null.
CVErr(xlErrValue) für falsche Argumentwerte.
Diese Methoden können nützlich sein, wenn du spezifische Fehlertypen ausgeben möchtest.
Praktische Beispiele
Hier sind einige praktische Beispiele für die Anwendung der Funktion:
- Beispiel 1: Wenn du
=erstedrei("Hi") eingibst, erscheint #NV.
- Beispiel 2: Bei
=erstedrei("Hallo") wird blub angezeigt.
- Beispiel 3: Kombiniere die Funktion mit
ISTFEHLER(), um eine bedingte Formatierung je nach Fehlerstatus anzuwenden.
=ISTFEHLER(erstedrei(A1)) ' Gibt WAHR zurück, wenn ein Fehler auftritt
Tipps für Profis
- Verwende die
Option Explicit-Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehlerquellen zu minimieren.
- Teste deine Funktionen gründlich mit verschiedenen Eingabewerten, um sicherzustellen, dass sie unter allen Bedingungen korrekt funktionieren.
- Dokumentiere deine Funktionen, um die Wartbarkeit zu erhöhen und anderen Benutzern zu helfen, deinen Code besser zu verstehen.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Fehlerwerte ausgeben?
Du kannst mehrere If...Else-Bedingungen nutzen und unterschiedliche Fehlerwerte mit CVErr zurückgeben.
2. Was passiert, wenn ich die Funktion in einer Zelle verwende?
Die Funktion gibt entweder einen String oder einen Fehlerwert zurück, der in Excel als #NV oder der entsprechende Fehler angezeigt wird.
3. Funktioniert dies in allen Excel-Versionen?
Ja, die beschriebene Methode sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.