Syntaxproblem bei arrayzuweisung

TobiasGuennel

Grünschnabel
Hi,

ich versuche gerade sechs Spalten aus einer Excel-Tabelle per VB in einen
array zu speichern.
Ich habe mir das so gedacht:

Code:
Dim arrvar1(42) As Variant

For i = 0 To 6
        arrvar1(6 * i + 1) = Cells( i, 6).Value
        arrvar1(6 * i + 2) = Cells(i, 7).Value
        arrvar1(6 * i + 3) = Cells(i, 8).Value
        arrvar1(6 * i + 4) = Cells(i, 9).Value
        arrvar1(6 * i + 5) = Cells(i, 10).Value
        arrvar1(6 * i + 6) = Cells(i, 11).Value
        i = i + 1
Next
Nun erscheint beim Ausführen folg. Fehlermeldung:
"Laufzeitfehler 1004:
Anwendungs- oder Objektorientierter Fehler"

Kann mir jemand sagen wo der Fehler liegt?

Vielen Dank im Voraus
Tobias
 
Deine For - Schleife startet bei ' 0 '. Du sprichst also im ersten Durchlauf die Zelle (0, ...) an. Diese kennt Excel nicht.
...
 
Wieso zählst du eigentlich die von der "Zahlschleife" hochgezählte Variable noch mal selbst hoch ?
Dein Fehler kommt aber daher, dass du Cells mit dem Index 0 ansprichst, obwohl diese bei 1 beginnen.:p
Versuch's mal so:
Code:
Dim arrvar1(42) As Variant
For i = 0 To 6
        arrvar1(6 * i + 1) = Cells( i, 6).Value
        arrvar1(6 * i + 2) = Cells(i, 7).Value
        arrvar1(6 * i + 3) = Cells(i, 8).Value
        arrvar1(6 * i + 4) = Cells(i, 9).Value
        arrvar1(6 * i + 5) = Cells(i, 10).Value
        arrvar1(6 * i + 6) = Cells(i, 11).Value
Next i
 
Ach ja,alles klar.
Das hab ich nicht gesehen.

Das hOchzählen hab ich bis jetzt noch nie mit "Next i" gemacht,sondern
immer mit i=i+1 und nur Next.
Ich bin noch Anfänger in VB,aber jetzt werd ich es mit "Next i" machen.

Also danke nochmal euch beiden.
 
@ Gorcky: In Deinem Beispiel spricht Du ja wieder den Index ' 0 ' an.

@ TobiasGuennel: Ob Du nun ' Next i ' oder nur ' Next ' schreibst, ändert nichts daran, dass ' i ' automatisch hochgezählt wird. Das hinzufügen der Zählervariablen nach dem ' Next ' dient z. B. der Übersichtilichkeit. So kannst Du bei verschachtelten ' For ' - Schleifen erkennen, welche an einem bestimmten Punkt beendet wird.
 
Zurück