Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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

Variablen deklarieren - Alternativen

Variablen deklarieren - Alternativen
06.03.2014 02:30:26
Dietmar
Hallo in die Runde,
experimentiere gerade mit unterschiedlichen Variablen-Deklarationen. Worin besteht eigentlich der Vorteil bzw. Unterschied zu folgenden beiden Variablen-Deklarationen?
01
Dim Dateiname As String
Dateiname = "MeineDatei.xls"
02
Dim Dateiname As Workbook
Set Dateiname = Workbooks("MeineDatei.xls")
Beides funktioniert.
Hat das eine oder andere einen Vorteil oder sorgt für mehr Stabilität im Code?
Wäre für einen kurzen Hinweis dankbar.
Vielen Dank vorab!
Dietmar aus Aachen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das hängtdavon ab, was man machen will, ...
06.03.2014 03:42:46
ab,
…Dietmar;
im Prinzip kann/sollte man beides tun, also …
Dim DateiName As String, aktWb As Workbook oder auch besser …
Const DateiName$ = "MeineDatei.xls"
Dim aktWb As Workbook
Set aktWb = Workbooks(DateiName)

Die „CodeStabilität“ ist hierbei irrelevant, denn die ist gleich. Du solltest dein Augenmerk eher auf leichte Aktualisierbarkeit und saubere Referenzierung lenken und logische Widersprüche vermeiden. ;-)
Morrn, Luc :-?

AW: Das hängtdavon ab, was man machen will, ...
07.03.2014 01:07:59
ab,
Hallo Luc,
vielen Dank! Das hilft mir weiter!
Viele Grüße
Dietmar

... so ok?
08.03.2014 10:19:57
Dietmar
Hallo Luc,
Habe Deinen Rat mal für meine Praxisdatei umgesetzt und würde mich über ein Feedback freuen.
Ich habe folgende Dateien und Sheets, die ich nun korrekt ansprechen möchte. Zwar funktionierte es bisher auch so, indem ich mit Sheets("Sheetsname")usw. arbeite, bekomme jedoch Bugs, vor allem, wenn der Code auf anderen PCs mit unterschiedlichen xl-Versionen läuft; auf meinem Rechner seltsamerweise nicht oder nur selten.
Quelldatei: Update.xls (diese hat nur ein Sheets, das heisst 'Upd')
Zieldatei: Programm.xls (diese hat u.a. ein Sheet, das 'Lager' heisst)
Die Quelldatei öffnet die Zieldatei und nimmt dann im Sheets 'Lager' Änderungen vor.
Ich würde also wie folgt deklarieren:
Dim Programm As Workbook, Update As Workbook
Dim Upd As Worksheet, Lager As Worksheet
Dim Update As String, Programm As String
Set Update = Workbooks("Update.xls")
Set Programm = Workbooks("Programm.xls")
Set Upd = Worksheets(Upd)
Set Lager = Worksheets(Lager)
... Mein Code
Set Update = Nothing
Set Programm = Nothing
Vom Grundsatz er so korrekt?
Vielen Dank und einen schönen Tag!
Dietmar

Anzeige
Nee, absolut nicht, denn du hast 2 Variablen ...
09.03.2014 01:02:55
Luc:-?
…1. doppelt und 2. auch noch unterschiedl deklariert, Albrecht;
eigentlich müsste sich da schon der Debugger beim Kompilieren melden!
Ich hatte auch etwas Anderes geschrieben…
Const naWbUpd As String = "Update.xls", naWbPgm As String = "Programm.xls", _
naWsUpd As String = "Upd", naWsLag As String = "Lager"
Dim Programm As Workbook, Update As Workbook, Upd As Worksheet, Lager As Worksheet
Set Update = Workbooks(naWbUpd): Set Programm = Workbooks(naWbPgm)
Set Upd = Update.Sheets(naWsUpd): Set Lager = Programm.Sheets(naWsLag)
' usw…
Dito SchöSo!
Morrn, Luc :-?

Anzeige
Vielen Dank ...
09.03.2014 01:28:10
Dietmar
... für Deine Geduld.
Hallo Luc,
ich werde das nun mal in meiner O-Datei umsetzen und Dir dann bescheid sagen.
Sorry, aber irgendwann werde ich das auch noch kapieren :-)
Mach's gut und ganz sicher: bis bald :-)
Viele Grüße
Dietmar

AW: Variablen deklarieren - Alternativen
06.03.2014 08:57:15
KlausF
Moin Dietmar,
im ersten Fall ist dem Code nicht bekannt, dass es sich um einen Dateinamen handelt
(auch wenn Du die Variable Dateiname nennst). Es handelt sich hier lediglich um eine
Zeichenfolge mit der im weiteren Verlauf gearbeitet werden kann. Erst wenn Du z.B.
Workbooks(Dateiname)
scheibst wird explizit ein Workbook mit dem Namen MeineDatei.xls angesprochen.
im zweiten Fall repräsentiert Dateiname von Anfang an ein Workbook mit Namen MeineDatei.xls
Beide Varianten stehen gleichberechtigt nebeneinander. Wenn der String im Laufe des Codes
nicht mehr verändert werden soll bevorzuge ich Variante 2, weil ich gleich direkt das bekomme,
was ich haben will (ein Workbook). Es empfiehlt sich dann am Ende des Codes die Variable
wieder zurück zu setzen: Set Dateiname = Nothing
Gruß
Klaus

Anzeige
AW: Variablen deklarieren - Alternativen
07.03.2014 01:10:22
Dietmar
Hallo Klaus,
Herzlichen Dank für die ausführliche Erläuterung. Ich verstehe.
Werde dann Alt. 2 verwenden. Ist ja eig. auch logisch ... jedenfalls jetzt :-)
Viele Grüße
Diemtar

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige