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

Excel ändert Variablendefinition?

Excel ändert Variablendefinition?
11.10.2018 21:30:45
Volker
Moin mitannner,
für ein kleines Makro habe ich definiert:
Dim AktZeile, AktSpalte, LetzteZeile, LetzteSpalte As String
Das es "String" sein sollte habe ich irgendwo im Netz gefunden, ist füür meine Frage erstmal unerheblich.
Dann habe ich diese Variablen gefüllt mittels
AktZeile = ActiveCell.Row
LetzteSpalte = ActiveCell.Column
um das später zu benutzen in
Range(ActiveCell, Cells(AktZeile, 1)).Select
...
Range(Cells(AktZeile, 1), Cells(AktZeile, LetzteSpalte)).Select
Das erste hat funktioniert, das zweite wider Erwarten nicht.
Im Überwachungsfenster ist mir dann aufgefallen:
AktZeile wird als Typ "Variant/Long" angezeigt, LetzteSpalte als Typ "String".
Ich habe viel herumgefummelt... Zum Schluss habe ich entdeckt: Wenn ich in der Variablendefinition das "LetzteSpalte" nach vorne setze, also
Dim LetzteSpalte, AktZeile, AktSpalte, LetzteZeile As String
dann werden sowohl "AktZeile" wie auch "LetzteSpalte" im Überwachungsfenster als "Variant/Long" angezeigt. Meine Definition wird also ignoriert.
Hat jemand eine Idee, woher so etwas kommen kann?
Besten Dank für jede Erleuchtun vorab, Volker

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel ändert Variablendefinition?
11.10.2018 21:41:24
Daniel
HI
in VBA gibt es keine "Gruppendeklartion" von Variablen.
du musst jeder Variable einzeln ihren Variablentyp zuweisen.
du deklarierst nur die Variable "LetzteSpalte" explizit als String
den anderen Variablen weist du keinen Typ zu, damit sind sie zunächst einmal Variant, dh sie können alles sein.
Sobald du dann einer dieser Variablen einen Wert zuweist, übernimmt die Variable den Typ des zugewiesenen Wertes.
Zeilen- und Spaltennummern sind in VBA vom Typ LONG (Ganzzahl)
wenn du jedoch eine Variable mit einem zugewiesenen Typ hast, wird bei einer Wertzuweisung versuchen, den Typ des zugewiesenen Wertes an den Typ der Variablen anzupassen und in deinem Fall aus der Zahl 123 den Text "123" machen.
Gruß Daniel
Anzeige
AW: Excel ändert Variablendefinition?
11.10.2018 23:08:39
Volker
Danke!!! Wieder was dazu gelernt!
AW: Excel ändert Variablendefinition?
11.10.2018 21:44:10
Sepp
Hallo Volker,
du musst jede Variable separat definieren, sonst sind die Undefinierten immer vom Typ Variant.
Dim AktZeile As Long, AktSpalte As Long, LetzteZeile As Long, LetzteSpalte As Long
Außerdem geben .Row und .Column einen Zahlenwert zurück, deshalb Long und nicht String.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Excel ändert Variablendefinition?
11.10.2018 23:05:34
Volker
Danke!!! Wieder was dazu gelernt.
Mit "String" klappt das nicht, habe ich selber auch gemerkt - das war aber nicht mein Problem, das kann man ja schnell ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige