Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

öffentliche Variable gelöscht. Falle?

öffentliche Variable gelöscht. Falle?
20.05.2018 11:36:18
Barbaraa
Hallo
Public Mein_Jahreseinkommen As Long
meine öffentliche Variable bleibt nicht.
Sie wird unbemerkt gelöscht, wenn ich einen Code beim schrittweise ausführen händisch abbreche.
Ist das nicht unfair?
Schlimmer noch, die Variablen bekommen den Wert 0, also nicht zu unterscheiden von einem Wert, den sie auch wirklich haben könnte.
Sicher, Abbrechen heisst Zurücksetzen.
Aber wenn ich den Code in ein paar Wochen ändere und teste, denke ich nicht an die Möglichkeit der Löschung der öffentlichen Variablen.
Meine Abhilfe zum Bemerken der geheimen Löschung: Diese öffentlichen Variablen sollen im Code nie 0 sein dürfen (um ungewollte Ergebnisse zu verhindern) und eine Fehlermeldung produzieren.
Oder haben die geschätzten erfahrenen Programmierer da vielleicht andere Tricks auf Lager?
LGB

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

Betreff
Datum
Anwender
Anzeige
AW: öffentliche Variable gelöscht. Falle?
20.05.2018 12:07:05
Sepp
Hallo Barbara,
sobald du im VBE bist, besteht die Gefahr, dass Variablen zurückgesetzt werden.
Wenn du auf einen Wert aus einer Tabelle öfters zugreifen willst, bietet sich z.B. eine Funktion an.
Modul Modul1
Option Explicit 
 
Public Function getMyValue() As Long 
  getMyValue = Tabelle1.Range("A1") 
End Function 
 
Sub test() 
  Dim lngValue As Long 
 
  lngValue = getMyValue 
End Sub 
 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


so kannst die einfach und von Überall auf den Wert zugreifen.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: öffentliche Variable gelöscht. Falle?
20.05.2018 12:31:56
Daniel
HI
ich würde die Zuweisung der Variablen in ein eigenes Makro auslagern.
Dieses kannst du dann immer zu Beginn jedes direkt ausführbaren Makros aufrufen.
damit die Zuweisung nur dann erfolgt, wenn die Variablen leer sind, kannst du folgende Prüfung einbauen:
- lege eine öffentliche Variable "VarZuweisungErfolgt as Boolean" an und gib ihr in der Zuweisung den Wert TRUE
- diese Variable fragst du dann ab um zu entscheiden, ob eine Zuweisung erforderlich ist oder nicht.
Option Explicit
Public x as long
Public y as long
Public z as long
Public VarZuweisungErfolgt as boolean
Sub VariablenZuweisung()
x = 1
y = 2
z = 3
VarZuweisungErfolgt = True
End Sub
Sub Makro1()
if  not VarZuweisungErfolgt Then Call VariablenZuweisung
End Sub

Anzeige
AW: öffentliche Variable gelöscht. Falle?
20.05.2018 15:47:39
Barbaraa
Das ist eine gute Idee,
vielen Dank
LG, Barbara
AW: öffentliche Variable gelöscht. Falle?
20.05.2018 20:19:53
AlterDresdner
Hallo Barbara,
wenn Du eine Variable als long vereinbarst, bekommt sie erst mal den Wert 0.
Um dies zu vermeiden, das As Long weglassen, dann ist sie erst mal leer,
was mit mit If IsEmpty(a) testen kann.
Gruß der AlteDresdner
AW: öffentliche Variable gelöscht. Falle?
21.05.2018 19:21:58
Barbaraa
OK, alterDresdner,
aber umdeklarieren geht dann aber nicht, oder?
dim a
dim a as long
AW: öffentliche Variable gelöscht. Falle?
22.05.2018 10:38:46
Daniel
macht man in der Regel auch nicht.
die Variable erhält ihren Typ automatisch mit der Zuweisung des Wertes.
Eine nachträgliche Festlegung des Typs bei ursprünglich als Variant deklarierten Variablen funktioniert nur bei gleichzeitiger Array-Dimensioniernung:
dim x as Variant
redim x(1 to 10) als Long
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige