Clever-Excel-Forum

Normale Version: Index eines Feldes beibehalten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute,

wenn ich mein Array folgendermassen deklariere ReDim arrayFeld(10 to 20) fängt der Index laut der Deklarationsvorschrift bei 10 an.

Nun weise ich diesem Array die Werte aus einem Range Bereich  zu, also  arrayFeld = Range("A10:A10")

und schwups passiert folgendes, der Index von arrayFeld fängt bei 1 an. Wie ist es möglich, dass sich der durch die Deklarationsvorschrift

angegebene Start des Index bei 10 nicht verändert?

Vielen dank schon mal für eure Hilfe.
Hallo,

wenn Du ein Feld beim Dim nicht fest vorgibst, bleibt es variabel und nimmt je nach codefortschritt unterschiedliche Größen und Indizees an. Warum soll es denn bei 10 anfangen?
Hallo Andre,

danke für deine Antwort. Warum bei 10? Nun ja, wenn man Code schreibt, hat mein eine Vorstellung davon wie er funktionieren sollte bzw. wie man meint das dieser funktioniert. Bei mir hat das fehlende Wissen, dann zu einer Fehlermeldung geführt.
Weil VBA dieses macht:



Code:
Sub M_snb()
   MsgBox Range("A10:k20").Cells(1, 1).Address
   MsgBox Range("A10:k20").Cells(2, 1).Address
   MsgBox Range("A10:k20").Cells(3, 1).Address

   MsgBox Range("A10:k20").Cells(1, 1).Address
   MsgBox Range("A10:k20").Cells(1, 2).Address
   MsgBox Range("A10:k20").Cells(1, 3).Address
End Sub
Hallöchen,

Zitat:MsgBox Range("A10:k20").Cells(1, 1).Address ...
da fehlt mit aber jetzt eine Lampe, dass mir ein Licht aufgeht Idea

Elke, in der Regel wird mit dem ersten Index 0 gearbeitet. Es gibt bei der Anwendung eine Ausnahme und vielleicht einen Grund, mit 1 zu beginnen.
Die Ausnahme hatten wir ja jetzt, wenn es um die direkte Übernahme ganzer Zellbereichen geht.
Ein anderer Grund liegt z.B. bei den Programmierern, die bei der Schleifenprogrammierung besser damit zurecht kommen oder es der Einfachheit halber nutzen. Wenn man 10 Elemente im Array hat, muss man immer 1 "umdenken", wenn das Array von 0 bis 9 geht. Wenn man z.B. ein Array zellweise füllt, muss man unter Umständen den Versatz zum ersten Arrayindex berücksichtigen.