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

Forumthread: Prüfen ob Variable vorhanden. Abbruch vermeiden

Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 14:01:03
Tim
Hallo zusammen,
Ist es möglich eine Fehlermeldung abzufangen ohne das ganze Makro zu beenden.
Ich habe eine Variable nennen wir sie "Variable_2"
folgendes führt zur einer Fehlermeldung, wenn "Variable_2" gar nicht existiert.
If Variable_2 "" then ...
Ich würde "Variable_2" gerne den Wert "existiert nicht" geben, anstatt den Abbruch des Makros.
Habt Ihr eine Idee?
Grüße Tim
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 14:19:55
Hajo_Zi
Hallo Tim,
Benutze Option Explicit als erste Zeile, was Programmierer machen. Laien brauchen dies wohl nicht.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 14:41:52
Werner
Hallo Tim,
zeig mal deinen Code. Kein Mensch kann nur mit dieser Codzeile etwas anfangen.
Gruß Werner
AW: Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 15:09:28
onur
Dafür gibt es IsEmpty().
https://msdn.microsoft.com/de-de/VBA/Language-Reference-VBA/articles/isempty-function
AW: Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 17:12:41
Tim
Vielen Dank an allen Helfern,
die Variable ergab bei IsEmty() immer "Falsch", was ja heißt, dass sie existiert.
Ich bin der Sache mal auf den Grund gegangen.
Die variable wird aus einer Excelzelle ausgelesen, die holt den Wert über Sverweis.
In der betroffenen Zelle gab es den beliebten "#NV" Fehler, dieser hatte zur Folge dass ich die Variable nicht einmal mit MsgBox(Variable_2) anzeigen konnte.
Nun habe ich den SVerweis noch um die WENNFEHLER Formel erweitert. Ein "#NV" gibt es nun nicht mehr
und das Makro steigt an der Stelle nicht mehr aus.
Vielen Dank ohne euch wäre ich nicht so weit gekommen.
Tim
Anzeige
AW: Prüfen ob Variable vorhanden. Abbruch vermeiden
04.11.2017 15:26:00
onur
Du kannst aber auch die Variable als public und variant deklarieren und ihr bei Codestart den Wert "existiert nicht" (oder auch =False) zuweisen.
Dann hat sie eben den Wert "existiert nicht", bis sie irgendwo überschrieben wird.
;
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob eine Variable vorhanden ist und Abbrüche vermeiden


Schritt-für-Schritt-Anleitung

  1. Option Explicit verwenden: Füge am Anfang deines VBA-Codes Option Explicit ein. Dies hilft, Fehler durch nicht deklarierte Variablen zu vermeiden.

    Option Explicit
  2. IsEmpty() nutzen: Verwende die IsEmpty()-Funktion, um zu prüfen, ob die Variable existiert oder nicht. Beispiel:

    If Not IsEmpty(Variable_2) Then
       ' Variable ist vorhanden
    Else
       Variable_2 = "existiert nicht"
    End If
  3. SVERWEIS verwenden: Wenn die Variable aus einer Excel-Zelle stammt, stelle sicher, dass du die WENNFEHLER-Formel in Verbindung mit SVERWEIS verwendest, um den Fehler #NV zu vermeiden.

    =WENNFEHLER(SVERWEIS(...), "existiert nicht")
  4. Fehlermeldungen abfangen: Um Fehlermeldungen zu vermeiden, kannst du die On Error Resume Next-Anweisung verwenden, um sicherzustellen, dass das Makro nicht abbricht.

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

Häufige Fehler und Lösungen

  • Fehler: Variable existiert nicht: Wenn du versuchst, auf eine nicht existierende Variable zuzugreifen, wird ein Fehler ausgelöst. Verwende die IsEmpty()-Funktion, um dies zu überprüfen.

  • Fehler: SVERWEIS gibt #NV zurück: Um dies zu beheben, verwende die WENNFEHLER-Formel, um sicherzustellen, dass anstelle von #NV ein benutzerdefinierter Wert angezeigt wird.


Alternative Methoden

  • Public und Variant: Deklariere die Variable als Public und Variant. Setze ihr zu Beginn den Wert "existiert nicht". Dies stellt sicher, dass du immer mit einem definierten Zustand startest.

    Public Variable_2 As Variant
    Variable_2 = "existiert nicht"
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Makro, um unvorhergesehene Fehler elegant abzufangen.


Praktische Beispiele

  1. Beispiel für SVERWEIS mit WENNFEHLER:

    =WENNFEHLER(SVERWEIS(A1;B:C;2;FALSCH);"existiert nicht")
  2. VBA-Code zur Überprüfung der Variable:

    Sub CheckVariable()
       Dim Variable_2 As Variant
       Variable_2 = "existiert nicht"
       If Not IsEmpty(Variable_2) Then
           MsgBox Variable_2
       End If
    End Sub

Tipps für Profis

  • Verwende MsgBox: Um den Wert einer Variable anzuzeigen, kannst du MsgBox verwenden, um sicherzustellen, dass der Wert korrekt ist:

    MsgBox "Der Wert der Variable ist: " & Variable_2
  • Dokumentation: Halte deinen Code gut dokumentiert, damit du oder andere ihn später leicht verstehen können.


FAQ: Häufige Fragen

1. Was ist die Funktion von IsEmpty()?
Die IsEmpty()-Funktion prüft, ob eine Variable leer ist oder nicht. Wenn sie leer ist, gibt sie True zurück.

2. Wie kann ich Fehler beim Zugriff auf Variablen vermeiden?
Verwende On Error Resume Next, um Fehler zu ignorieren, oder implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Makro nicht abbricht.

3. Was ist der Unterschied zwischen Variant und andere Datentypen?
Variant ist ein flexibler Datentyp in VBA, der verschiedene Arten von Werten speichern kann, während andere Datentypen wie Integer oder String spezifische Typen erfordern.

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