nachdem ich so begeistert von der Geschwindigkeit des Rechnens mit Arrays bin, stellen sich mir folgende Verständnisfragen:
1. Mit
Dim arrWork as Variant
arrWork = Range("A1:F12")
fülle ich ein array mit Werten aus meiner Tabelle. Bisher bin ich immer davon ausgegangen, _
dass ein array 0-basiert ist, wenn man beim Dim-Befehl nicht explizit etwas anderes angibt. Im _
obigen Beispiel ist es jedoch so, dass ich bei der Abfrage nach
arrWork(0,0)
eine Fehlermeldung erhalte ("Laufzeitfehler 9, Index ausserhalb des gültigen Bereichs"). Wird bei einer Zuweisung von Werten aus einer Tabelle zu einem array nach der obigen Zuweisung das array immer 1 basiert?2. Die obige Zuweisung funktioniert bei mir nur, wenn ich dem array die Werte aus dem gerade _
aktiven Blatt zuweise. Will ich die Zuweisung hingegen von einem nicht aktiven Blatt vornehmen arrWork = Sheets("Tabelle1").Range("A1:F12")
erhalte ich die Fehlermeldung 13, "Typen unverträglich".
Ist die array-Zuweisung also nur vom aktiven Blatt aus möglich?
3. Bei einer array Zuweisung von nicht zusammenhängenden Tabellenbereichen:
Dim arrWork as Variant
arrWork = Range("A1:C12,F1:F12")
erhalte ich zwar zunächst keine Fehlermeldung. Frage ich dann jedoch Werte aus diesem Array ab, so scheint nur der erste Bereich (also A1 bis C12) im array aufgenommen zu sein, nicht jedoch F1 bis F12.
Bei der Abfrage von z.B. arrWork(1,4) erhalte ich die Fehlermeldung "Laufzeitfehler 9, Index ausserhalb des gültigen Bereichs"
Kann ich also nur zusammenhängende Bereiche in ein array schieben.
Anmerkung: Bezüglich Frage 2 und 3 ist mir klar, dass ich dies über ein Einlesen der Tabellenwerte in das array mit Hilfe einer Schleife sehr wohl realisieren kann. Dennoch würde ich gerne wissen, wie es sich bei der Zuweisung ohne Schleife, also wie oben dargestellt verhält.
Ich bin sicher die Gurus hier können einem "wissbegierigen Schüler" helfen.
Herzlichen Dank für jede Erklärung im voraus.
Wünsche Euch allen einen guten Tag.
Gruß
erwin