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

Forumthread: Exit Sub: Zurücksetzen der Variablen

Exit Sub: Zurücksetzen der Variablen
17.12.2007 11:03:00
Jochen
Hallo zusammen,
gibt es einen Befehl, mit dem ich vor "Exit Sub" alle Variablenwerte wieder leeren kann, damit diese bei erneutem Makroaufruf wieder neu belegt werden?
Vielen Dank und schöne Grüße,
Jo

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 11:10:00
Hajo_Zi
Hallo Jo,
Definiere die Variablen zu Beginn es Makros.

AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 12:43:00
Jochen
Hallo Hajo,
Danke für die schnelle Antwort. Das habe ich schon gemacht. (mit Option Explicit muss ich das ja machen).
Allerdings scheint irgendwas trotzdem nicht zu funktionieren. Wenn ich das Makro ein 2. Mal ausführe, scheinen verschiedene Variablen bereits vorbesetzt zu sein...
Gibt es keinen Befehl, der alle Variablen leert?
Danke!
Jo

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 12:47:43
Hajo_Zi
Hallo Jochen,
Option Explicit definiert keine Variablen, das bedeutet nur Sie müssen vor der ersten Verwendung definiert werden.
Ich vermute Du definierst nicht im Makro sondern vor dem Makro.
Gruß Hajo

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 12:55:54
Daniel

... Ich vermute Du definierst nicht im Makro sondern vor dem Makro.


und dann bleiben die Werte natürlich erhalten, weil sie ja noch anderen Markos zur verfügung stehen sollen.
zurückgesetzt werden diese Werte nur, wenn das Makro mit einem Fehler abbricht.
dh. die Variablendeklaration muss innerhalb des Makros erfolgen.
oder du musst die Werte beim Makrostart (oder Ende) expizip per einzelanweisung wieder auf den gewünschten Startwert setzen.
Gruß Daniel

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 14:13:00
Jochen
Hm, ist schon alles klar. Ich definiere sämtliche Variablen innerhalb des Makros (Dim Variable 1 As ... usw.)
Frage ist: Wie kann ich die Werte der Variablen mit einem VBA-Befehl zurücksetzen?
Gruß,
Jochen

AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 14:18:26
Hajo_Zi
Hallo Jochen,
falls alle Variablen im Makro definiert werden mit Dim brauchst Du keine zurücksetzen.
Gruß Hajo

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 14:50:00
Rudi
Hallo,
verwechselst du evtl Makro mit Modul?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 16:31:42
Jochen
Hallo,
der Code liegt hinter einer UserForm und das Makro startet nach Klicken auf "Start"
Innerhalb des Makros erscheint eine Inputbox. Wenn ich euch richtig verstehe, müssten die Variablen beim Klicken auf "Abbrechen" in der Inputbox automatisch geleert werden, wenn nach dem Abbrechen nurnoch "Exit Sub" aufgerufen wird. Also muss mein Fehler irgendwo anders herkommen...
Nur damit ich trotzdem nicht dumm nach Hause gehe: Gibt es nun einen Befehl zum Leeren aller Variablenwerte und wie heißt der?
Vielen Dank für eure Mühe!
Gruß,
Jo

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 16:40:37
Daniel
Hi
meines wissen nach nein, das geht nur einzeln mit explizitem aufruf
(ansonsten müsste ich jetzt genau wie du in der Hilfe suchen)
lediglich für Array-Felder gibt es ein kleine Hilfe, die kann man mit
ERASE ArrayName
auf einen Schlag löschen.
Gruß, Daniel
Gruß, Daniel

Anzeige
AW: Exit Sub: Zurücksetzen der Variablen
17.12.2007 18:31:54
Fred
Hi,
schließ die Userform mit Unload Me, nicht mit Me.Hide, dann sind alle Variablen leer.
mfg Fred
;
Anzeige
Anzeige

Infobox / Tutorial

Exit Sub: Zurücksetzen der Variablen in VBA


Schritt-für-Schritt-Anleitung

  1. Variablen im Makro definieren: Stelle sicher, dass Du alle Variablen innerhalb des Makros definierst. Verwende dazu Dim, um die Variablen zu deklarieren. Beispiel:

    Dim myVariable As String
  2. UserForm schließen: Wenn Du eine UserForm verwendest, schließe diese mit Unload Me, um sicherzustellen, dass alle Variablenwerte zurückgesetzt werden. Vermeide Me.Hide, da dies die Variablenwerte nicht leert.

  3. Variablen manuell zurücksetzen: Falls notwendig, setze die Variablenwerte manuell auf den gewünschten Startwert, bevor Du Exit Sub aufrufst. Beispiel:

    myVariable = ""

Häufige Fehler und Lösungen

  • Variablen werden nicht zurückgesetzt: Stelle sicher, dass Du die Variablen innerhalb des Makros definierst. Wenn sie vor dem Makro definiert wurden, bleiben die Werte erhalten.

  • UserForm wird nicht korrekt geschlossen: Verwende Unload Me, um sicherzustellen, dass alle Variablen geleert werden.


Alternative Methoden

  • Reset durch Fehler: Wenn das Makro aufgrund eines Fehlers abbricht, werden die Variablen automatisch zurückgesetzt. Dies ist eine weniger kontrollierbare Methode.

  • Array-Felder leeren: Für Array-Felder kannst Du den Befehl Erase ArrayName verwenden, um alle Werte auf einmal zu löschen.


Praktische Beispiele

Hier ein einfaches Beispiel, wie Du Variablen in einem VBA-Makro leeren kannst:

Sub BeispielMakro()
    Dim myString As String
    Dim myArray(1 To 10) As Integer

    ' Benutzeranfrage
    myString = InputBox("Gib einen Wert ein:")

    ' UserForm schließen
    Unload Me

    ' Leeren der Variablen
    myString = ""
    Erase myArray
End Sub

Tipps für Profis

  • Systematische Struktur: Halte eine klare Struktur in Deinem Code, indem Du alle Variablen am Anfang des Makros definierst. Dies erleichtert das spätere Zurücksetzen.

  • Verwendung von Option Explicit: Setze Option Explicit an den Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden, bevor sie verwendet werden.


FAQ: Häufige Fragen

1. Gibt es einen Befehl, um alle Variablenwerte zurückzusetzen?
Leider gibt es in VBA keinen Befehl, der alle Variablenwerte auf einmal leert. Du musst dies für jede Variable einzeln tun.

2. Was ist der Unterschied zwischen Unload Me und Me.Hide?
Unload Me entfernt die UserForm aus dem Speicher und setzt alle Variablen zurück, während Me.Hide die Form nur verbirgt, was bedeutet, dass die Variablen weiterhin bestehen bleiben.

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