Hi
Also mit redim kann man bei arrays die anzahl der elemente einer dimension jedoch nicht die Dimension verändern. Stimmt das so?
Wenn ja verstehe ich folgendes nicht.
In einem Modul deklariert:
Dim E1Rad(1, 1 To 2) As String
Dim E2Rad(1, 1 To 2) As String
Im Formcode steht:
If bedingung1 then
…
ReDim E1Rad(0 To List2.ListCount, 1 To 2)
…
elseif bedingung 2 then
…
ReDim E2Rad(0 To List2.ListCount, 1 To 2)
…
else
…
endif
Also beide Arrays haargleich gedimmt und redimmt. Trotzdem gibt er mir vor dem Ausführen eine Fehlermeldung aus:
Fehler beim Kompilieren. Redim ungültig.
Komischerweise jedoch NUR für den 2ten Redim (also wenn ich den als Kommentar markiere gibts keine Fehlermeldung für den ersten redim). Dabei ist es egal ob Bedingung 1 oder 2 wahr ist.
'löst einen Fehler schon beim Kompilieren aus
Dim arr(3) As String
ReDim arr(6)
'Lösungs-Variant 1
'Du Deklarierst mit Redim und musst die
'Array-Grösse gleich mit angeben.
ReDim arr(3) As String
ReDim arr(6)
'Lösungs-Variante 2
'Du Deklarierst mit Dim, darfst keine Array-Grösse
'angeben. Musst das Array vor der 1ten Benutzung mit
'Redim() „initialisieren“ - in diesem Falle war das
'der Wert 3. Danach kannst Du dann weiter „Redimen“
'z.B. auf 6
Dim arr() As String
ReDim arr(3)
ReDim arr(6)
Komischerweise jedoch NUR für den 2ten Redim (also wenn ich
den als Kommentar markiere gibts keine Fehlermeldung für den
ersten redim). Dabei ist es egal ob Bedingung 1 oder 2 wahr
ist.
Schon gewusst? Man kann auch mitten im Coding neue Variablen Deklarieren - normalerweise sollten diese ja am Anfang einer Funktion stehen - muss aber nicht!