Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
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
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wozu Dim?

Wozu Dim?
29.08.2006 14:18:05
Werner
Hallo zusammen,
das folgende Makro gibt mir genau den gleichen Blattausschnitt auf dem nächsten Blatt wieder. Die Markierten Zellen werden auch übernommen.
Ich habe es bei mir ohne die Zeile "Dim Zeile, Spalte, Markierung" laufen und es funktioniert auch. Wozu steht eigentlich das Dim und warum läuft es bei mir ohne?

Sub BlattWechseln1()
With ActiveWindow
Zeile = .ScrollRow
Spalte = .ScrollColumn
Markierung = .Selection.Address
If ActiveSheet.Index < Sheets.Count Then
Sheets(ActiveSheet.Index + 1).Activate
Else
Sheets(1).Activate
End If
Range(Markierung).Select
.ScrollRow = Zeile
.ScrollColumn = Spalte
End With
End Sub

Über eine kurze Erklärung würde ich mich sehr freuen,
Gruß Werner.

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

Betreff
Datum
Anwender
Anzeige
AW: Wozu Dim?
29.08.2006 14:32:07
Peter Feustel
Hallo Werner,
es läuft bei dir, weil Excel so clever ist, sich die Variablen selbst zu definieren, aber...
sie werden in der ungünstigsten Form, nämlich als Variant definiert und das ist speicheraufwendig.
Du solltest in der VBA Umgebung unter Extras, Optionen, Editor ALLE häcksen setzen, dann wird dir grundsätlich automatisch die Titelzeile Option Explicit in jedem Modul, jedem Klassenmodul (Tabellenblatt, DieseArbeitsmappe) eingefügt und damit zwingst du dich selbst, alle Variablen zu definieren.
Das kannst du dann in deren optimaler Formatierung tun.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Wozu Dim?
29.08.2006 14:44:09
Werner
Hallo Peter,
klar, den Haken kann ich machen, aber als was soll ich die Variablen dann deklarieren?
Gruß,
Werner.
PS. Das mit der Erklärung in der VBA-Hilfe ist immer so eine Sache. Wenn Du Dich nicht schon auskennst dann hilft sie Dir wenig. Ich verstehe da meistens nur Bahnhof. Wenn ich dann mal etwas kapiere dann nur weil ich es schon kenne.
AW: Wozu Dim?
29.08.2006 15:37:14
Peter Feustel
Hallo Werner,
dann hilft nur lernen, lernen, lernen.
Du kannst dir ein VBA-Buch kaufen oder ein Script aus dem Internet drucken und dort nachlesen - http://www.joanneum.ac.at/services/vbaexcel
Grundsätlich solltest du dich mit den Variablen auseinandersetzten, wenn du ernsthaft in VBA programmieren willst, und nichts 'dem Zufall' überlassen.
Wenn du, wie ich, von anderen Programmiersprachen (Assembler, COBOL, FORTRAN, ABAP) zum VBA gekommen bist, ist es eine Selbstverständlichkeit am Makroanfang die Variablen zu definieren.
Viele Grüße Peter
Anzeige
AW: Wozu Dim?
29.08.2006 14:33:27
Eule
Hi Werner
klick im VBA-Editor aufs Fragezeichen und gib als Suchbegriff "dim" ein.
dort steht alles geschrieben!!
Gruss Eule
AW: Wozu Dim?
29.08.2006 14:41:28
Jörg Gradert
Hallo Werner,
aus der VBA Hilfe
Dim-Anweisung
Deklariert Variablen und reserviert Speicherplatz dafür.
Wenn Sie die Option Explicit-Anweisung in einem Modul verwenden, müssen alle Variablen explizit mit den Anweisungen Dim, Private, Public, ReDim oder Static deklariert werden. Wenn Sie einen nicht deklarierten Variablennamen verwenden, tritt zur Kompilierungszeit ein Fehler auf.
Wenn Sie die Option Explicit-Anweisung nicht verwenden, erhalten alle nichtdeklarierten Variablen den Typ Variant, solange mit einer DefTyp-Anweisung kein anderer Standardtyp festgelegt wird.
Du stellst im VBA Editor unter Menü Extras, Optionen, Editor, Variablendeklaration erforderlich, ein, ob Du die Variablen selbst deklarieren willst.
Dies wird allgemein empfohlen, da die automatische Variablendeklaration als Variant in Excel wohl eine Ausnahme bei der Programmierung darstellt und zu unsauberem Programmierstil verleitet. Außerdem benötigt Variant den größten Speicherplatz.
Für mich als VBA Anfänger hilft es die Variablen kennenzulernen, dadurch daß ich mir Gedanken machen muss, was ich deklarieren will.
Gruß Jörg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige