Registriert seit: 01.03.2016
Version(en): 2016
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.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 01.03.2016
Version(en): 2016
20.05.2016, 11:14
(Dieser Beitrag wurde zuletzt bearbeitet: 20.05.2016, 12:13 von Rabe.
Bearbeitungsgrund: redundanten Zeilenumbruch entfernt
)
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.
Registriert seit: 29.09.2015
Version(en): 2030,5
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Zitat:MsgBox Range("A10:k20").Cells(1, 1).Address ...
da fehlt mit aber jetzt eine Lampe, dass mir ein Licht aufgeht
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.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)