Super globale Variable in VBA ?

Hallo

Ich benutze in einem Projekt von mir verschiedene Formulare. Jetzt habe ich das Problem das ich nicht zwischen zwei Formularen Daten austauschen kann.

Es sind z.B. zwei Formulare offen. Jetzt erledigt Formular a eine bestimmte Aufgabe und hat das Resultat danach in einer Variable. Jetzt müsste Formular b auf diese Variable zugreifen können. Wie geht das ?

Eine normale globale Variable hat nicht funktioniert. Also einfach die Variablen Definition nicht in einen Sub reinschreiben…

Gruss
Nico

Hi,
ganz einfach: schreibe in den allgemeinen Teil eines eigenen Moduls die Variablendefinition wie folgt:

global varname as typ

und schon kannst du diese variable ueberall benutzen.
Allerdings ist diese Vorgehensweise sehr speicherintensiv!

gruss
db

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Wieso ist das Speicherintensiev ? Interessiert mich ma.

Gruß

Michael

global varname as typ

[…]
Allerdings ist diese Vorgehensweise sehr speicherintensiv!

ist doch logisch: eine Variable, die immer zur Verfügung steht, belegt mehr Speicher (steht laenger im Speicher), als eine, die nur innerhalb einer Prozedur/Funktion deklariert wurde und nach Ende der Prozedur/Funktion wieder „stirbt“!

gruesse
dennis

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Die Variable lebt zwar länger verbraucht deswegen aber nicht mehr Speicher. Ein integer is und bleibt ein Integer :smile: (Ja, steht länger im Speicher das is war)

Lokale Variablen werden i.d.r. auf dem Stack erzeugt der generell allokiert wird ?!

Interessiert mich das Thema da ich keine Aussage treffen kann wie Basic (Visual Basic) die Speicherverwaltung macht. Vom reinen Speicherverbrauch gibt sich das nicht viel.

O.k. wenn man 100 strings hat von dehnen 80 selten gebraucht werden…

*mal überlegt und grübelt*

Weiß jemand was genaues über die Speicherverwaltung des VB Compilers ? :smile:

Micha