Seite 1 von 1

Bug im OO-Basic??

Verfasst: Mo, 20.09.2004 15:21
von hoefri55
Hallo,

mir ist da was merkwürdiges passiert.

Ich habe in meinem Macro 3 Arrays definiert:

dim vonzeile(), biszeile(), leerefelder() as integer

im code dann:

redim vonzeile(1)
redim biszeile(1)
redim leerefelder(1)

um die Felder mit Werten belegen zu können. In der dritten Zeile bleibt der Interpreter hängen und meldet einen
"Syntax-Fehler: Variable leerefelder bereits definiert"
Ich bin mir ziemlich sicher, da nichts falsch gemacht zu haben.
Nachdem ich vieles ausprobiert und vergeblich versucht hatte, habe ich dann ein weiteres Array definiert. Mein code sieht jetzt folgendermassen aus:

dim vonzeile(), biszeile(), leerefelder(), dummy() as integer

im code dann:

redim vonzeile(1)
redim biszeile(1)
redim leerefelder(1)

Und er läuft ohne Probleme!

Woran kann das denn liegen? Bin ich da auf einen Bug gestoßen?

F. Hömmeke

Verfasst: Di, 21.09.2004 07:38
von Charly
Hallo!

Dein Problem ist eher ein Syntaxfehler.

dim vonzeile(), biszeile(), leerefelder() as integer
Du hast "leerefelder" als Typ "integer" definiert. Wenn du ein als Typ definiertes Feld mit Redim ändern willst mußt du die geänderte Variable wieder mit dem gleichen Typ definieren. Also

Code: Alles auswählen

redim leerefelder(1)  as integer
As Integer in deinem Dim-Befehl bezog sich nur auf die letzte Variable. Daher haben die anderen Variablen funktioniert, da bei diesen keine Typ-deklaration erfolgte. Und als du die Dummy-Variable eingefügt hast, war "leerefelder" wieder ohne Typdeklaration, da sich Integer jetzt auf die Dummyvariable bezog.

Gruß
Charly

Verfasst: Mi, 22.09.2004 10:52
von hoefri55
Das ist eine logische Erklärung, Danke.
Man merkt, glaube ich, dass ich derzeit meine Macros aus Excel umarbeite. Da habe ich dieses Problem nicht gehabt. Mal sehen, was sonst noch so alles kommt.

F. Hömmeke