Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Globale Variablen löschen

Globale Variablen löschen
20.10.2005 11:46:52
Heiner
Hallo,
ich habe in einem Modul ca 20 Variablen als Global deklariert. Es werden wohl an die 40 werden.
Da ich bei jedem Aufruf sämtliche globalen Variablen auf "empty" setzen muss, habe ich eine Prozedur:

Sub variablen_löschen()
v1=empty
v2=empty
v20=empty
End 

Sub
Da es aber immer mehr werden, hätte ich sie gerne eine Prozedur mit der ich alle Variablen auf eine Rutsch auf empty setzen kann.
etwa so:
for x= 1 to globalevariablen.count
variable x=empty
next
Gibts da was?
Vielen Dank
Heiner

		
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Globale Variablen löschen
20.10.2005 11:48:53
Leo
Hi,

Sub variablen_löschen()
End
End 

Sub
mfg Leo

AW: Globale Variablen löschen
20.10.2005 12:39:18
Heiner
Danke für die schnelle Antwort, geht aber leider nicht :-(
Da nach dem löschen der Variablen in die Prozedur weiterlaufen soll, geht die "End-Anweisung" in diesem Fall nicht, das sie eben alles beendet.
So sieht der Aufruf in der übergeordneten Prozedur aus:
Global wblfd as integer, wbbetrag as double, wbdatum as date

Sub ini()
Call variablen_löschen
wbname = ActiveWorkbook.Name
wbzeil = Activecell.Row
wblfd = Range("a" & wbzeil)
wbbetrag = Range("b" & wbzeil)
End Sub

Anzeige
AW: Globale Variablen löschen
20.10.2005 12:49:48
Leo
Hi,
dann setz das End an den Schluss der Prozedur. Beim ersten Start des Codes sind die variablen ohnehin leer.

Sub ini()
wbname = ActiveWorkbook.Name
wbzeil = Activecell.Row
wblfd = Range("a" & wbzeil)
wbbetrag = Range("b" & wbzeil)
End
End Sub

mfg Leo
Anzeige
AW: Globale Variablen löschen
20.10.2005 12:51:51
MichaV
Hallo Heiner,
das geht m.W. nicht.
Als Workaround könntest Du alle betreffenden Variablen in ein benutzerdefinierten Datentyp stecken, diesen kannst Du dann mit einem Schlag löschen. Weiß aber nicht, ob das für Dein Projekt Sinn macht:

*********Standart- Modul
Option Explicit
Type vÖVar
var1 As Integer
var2 As String
var3 As Integer
var4 As String
End Type
Public ÖVAR As vÖVar
Public emptyÖVAR As vÖVar
*********Klassenmodul Tabelle o.ä.
Option Explicit
Sub FüllenUndLöschen()
ÖVAR.var1 = 1
ÖVAR.var2 = "Zwei"
ÖVAR.var3 = 3
ÖVAR.var4 = "Vier"
ÖVAR = emptyÖVAR 'alle Variablen löschen
Debug.Print ÖVAR.var2
End Sub

Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Globale Variablen löschen
21.10.2005 09:59:49
Heiner
Vielen Dank, das ist die Lösung.
Viele Grüße
Heiner
Danke für Deine Rückmeldung! owT
22.10.2005 00:20:45
MichaV
;
Anzeige
Anzeige

Infobox / Tutorial

Globale Variablen in Excel VBA effektiv leeren


Schritt-für-Schritt-Anleitung

Um globale Variablen in Excel VBA zu leeren, kannst du eine spezielle Prozedur erstellen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", gehe zu "Einfügen" und wähle "Modul".

  3. Füge die Prozedur ein: Kopiere folgenden Code in das Modul:

    Sub variablen_löschen()
       Dim v As Variant
       For Each v In ThisWorkbook.Names
           If v.RefersToRange Is Nothing Then
               v.Value = Empty
           End If
       Next v
    End Sub
  4. Rufe die Prozedur auf: Stelle sicher, dass du die Prozedur in deiner Hauptprozedur aufrufst, um die globalen Variablen zu leeren.


Häufige Fehler und Lösungen

  • Fehler: "End-Anweisung" in der Prozedur
    Wenn du die End-Anweisung in der variablen_löschen Prozedur verwendest, wird der gesamte Code gestoppt. Es ist besser, die End-Anweisung ans Ende der Hauptprozedur zu setzen.

  • Fehler: Variablen werden nicht geleert
    Stelle sicher, dass du die richtigen Variablen in der variablen_löschen Prozedur ansprichst. Eine Möglichkeit, alle globalen Variablen zu leeren, ist die Verwendung von benutzerdefinierten Datentypen.


Alternative Methoden

Eine weitere Methode, um globale Variablen zu leeren, besteht darin, sie in einem benutzerdefinierten Datentyp zu organisieren. Hier ein Beispiel:

Type vÖVar
    var1 As Integer
    var2 As String
    var3 As Integer
    var4 As String
End Type

Public ÖVAR As vÖVar
Public emptyÖVAR As vÖVar

Sub FüllenUndLöschen()
    ÖVAR.var1 = 1
    ÖVAR.var2 = "Zwei"
    ÖVAR.var3 = 3
    ÖVAR.var4 = "Vier"
    ÖVAR = emptyÖVAR 'alle Variablen löschen
End Sub

Mit dieser Methode kannst du alle Variablen in einem Schritt leeren.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die oben genannten Methoden in deinem VBA-Projekt verwenden kannst:

  1. Leeren von Variablen nach einer bestimmten Aktion:

    Sub nach_aktion_leeren()
       ' Deine Aktionen hier
       Call variablen_löschen
    End Sub
  2. Verwendung von benutzerdefinierten Datentypen:

    Sub verwende_benutzerdefinierte_typen()
       FüllenUndLöschen
       Debug.Print ÖVAR.var2 ' Gibt leer zurück
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Stelle sicher, dass du immer Option Explicit am Anfang deines Moduls verwendest, um sicherzustellen, dass alle Variablen deklariert werden.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um die Funktionalität deiner Prozeduren zu erklären. Das erleichtert die Wartung und das Verständnis des Codes.
  • Vermeide globale Variablen: Wenn möglich, nutze statische Variablen oder übergebe Daten als Parameter an deine Prozeduren, um die Abhängigkeit von globalen Variablen zu minimieren.

FAQ: Häufige Fragen

1. Wie kann ich alle globalen Variablen in einem Schritt leeren?
Du kannst alle globalen Variablen leeren, indem du sie in einem benutzerdefinierten Datentyp organisierst und dann die Variablen auf leere Werte setzt.

2. Was passiert, wenn ich eine Variable nicht deklariere?
Wenn du Option Explicit verwendest und eine Variable nicht deklarierst, wird ein Kompilierungsfehler angezeigt. Es ist eine gute Praxis, alle Variablen zu deklarieren, um Fehler zu vermeiden.

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