Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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
"Leeren" von Variablen
22.01.2013 09:10:43
Variablen
Hallo zusammen,
ich weiß... Grundwissen.
Meine Unkenntnis gebe ich voll zu, aber der Knoten will sich nicht lösen....
Folgendes Problem:
In einer Exceltabelle stehen Emailanschriften und Daten.
Mittels einer Abfrage werden diese Daten in Outlook übergeben, die Emaianschrift in das Feld "AN :" und ein bestimmter Text in das Textfeld.
Je nach Zellenwert innerhalb der Zeile, in der die Email steht in der Tabelle, werden Zellinhalte in diesen Text in Outlook übergeben.
BSP : Email an test@yx.de mit Text : Hallo XY, dein Auto steht in der Alphastraße. Der Wert Alphastraße kommt aus Excel.
Rufe ich also eine Email an die hallo@welt.de auf, würde zum Beispiel Parkallee im Text stehen, wenn in Excel das so eingetragen ist.
Diese Werte werden übergeben mit : straße = cells(activecells, 27 )
Ist KEIN Wert in dem Zelle enthalten, sollte auch kein Wert übergeben werden.
Sollte....
Das ist nämlich das Problem.
Wenn ich das Makro starte, es läuft durch, in Outlook steht alles, was ich brauche ( das Makro also durchgelaufen ist ), ich verschicke die Mail, rufe aus Excel die nächste Mail auf ( starte also wieder das Makro / ich habe in der Zwischenzeit Excel nicht gespeichert und-oder geschlossen ), dann steht als Wert "Straße" immer noch der zuerst gefundene Wert, was ja nicht sein darf, wenn in der Zelle kein Wert steht.
Das Problem habe ich versucht zu lösen, in dem ich ganz am Ende des Makros folgendes festlege :
straße = "".
Aber kann es das sein ?
Und daher meine Grundwissensfrage : wie "lösche" ich am Ende alle "Variablen" wieder, so dass bei Neustart diese nicht belegt sind ?.
Wie gesagt, wahrscheinlich bin ich einfach zu verbohrt gerade.
Danke für jeden Hinweis.
Grüße
Thomas

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

Betreff
Datum
Anwender
Anzeige
anders geht's nicht. owT
22.01.2013 10:16:56
Rudi

AW: anders geht's nicht. owT
22.01.2013 10:37:30
Daniel
HI
kommt darauf an, wo und wie du die Variable strasse deklariert hast.
Lokale Variablen, die innerhalb des Makros deklariert werden, sind beim Neustart des Makros normalerweise leer.
Globale Variablen (also die die oberhalb der Makros deklariert werden) und Variablen, die mit dem Zusatz "Static" deklariert wurden, behalten ihren Wert, so daß er beim nächsten Start wieder zur Verfügung steht.
Beispiel, nur die LokaleVariable wird beim Makrostart automatsich geleert:
Option Explicit
Public GlobaleVariable as string
Sub DeinMakro()
Dim LokaleVariable as string
Static StatischeVariable as string
End Sub
allerdings sollte das eigentlich mit der Zuweisung
straße = cells(activecells, 27 )
schon hinreichend erledigt sein, denn wenn du eine Leere Zelle zuweist, ist auch der String leer.
Gruß Daniel

Anzeige
AW: anders geht's nicht. owT
22.01.2013 11:34:20
thomas3
Hallo Daniel,
danke für den Hinweis.
sie sind als PUBLIC definiert, da innerhalb des Makros von einem Modul auf das andere verzweigt wird ( nur der besseren Übersicht halber ).
Kann das der Grund sein ?
Viele Grüße
Thomas

AW: anders geht's nicht. owT
22.01.2013 11:39:35
Daniel
Hi
ja, steht doch in meinem Beitrag drin (siehe beispiel)
aber wie gesagt, mit der Zuweisung des Zellinhalts an die Variable sollte das Problem eigentlich gelöst sein.
Vorausgesetzt, deine Markos arbeiten in der richtigen Reihenfolge und du hast nicht irgendwo eine Prüfung drin, die bewirkt, daß die Zuweisung nicht ausgeführt wird, wenn die Zelle leer ist.
das wäre in diesem Fall kontraproduktiv.
Gruß Daniel

Anzeige
AW: anders geht's nicht. owT
22.01.2013 12:13:57
thomas3
Hallo Daniel,
zum einen - man muß halt lesen können. Danke für den lieben Hinweis ! Ich ......
Zum anderen - das Wort "kontraproduktiv" war dann der ausschlaggebende Teil, den Sinn meiner Programmierung noch einmal nachzuvollziehen. Und siehe da...
Richtig.
Ein paar Zeilen zuvor wird etwas abgefragt, was bei Eintreten des Falles ein "weiter" bewirkt und schon bin ich über eben diesen Teil der Abfrage hinaus.
Danke für den zweiten Hinweis..... :-)
Schöne Woche noch
Thomas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige