Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

3 Fragen zu Arrays

3 Fragen zu Arrays
29.01.2013 08:17:06
eres
Guten Morgen an alle Excel-Freunde,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
zu Frage 1 und 2
29.01.2013 08:56:33
Beverly
Hi Erwin,
zu Frage 1: das hängt wohl damit zusammen, dass es im Tabellenblatt keine Zeile/Spalte 0 gibt
zu Frage 2: auf ein anderes Tabellenblatt kannst du zugreifen, indem du noch .Value hinter den Bereich schreibst


AW: zu Frage 1 und 2
29.01.2013 09:13:58
eres
Guten Morgen Karin,
DANKE für Deine Antworten.
Damit sind schon 2/3 meiner Fragen perfekt geklärt.
Vielleicht hat noch jemand eine Idee zur 3. Frage.
Wünsche Dir einen tollen Tag.
Gruß
erwin

AW: 3 Fragen zu Arrays
29.01.2013 10:49:30
Rudi
Hallo,
1. ein Range ist letztlich auch ein Array und beginnt mit (1,1).
2. funktioniert tadellos. Selbst mit anderen Workbooks.
arr=Workbooks("bla.xls").Sheets(2).Range("A1:C20")
3. kannst du nur per Schleife realisieren oder einfach A1:F12 einlesen.
Alternativ Arrays im Array.
Sub aaaa()
Dim arr(1 To 2)
arr(1) = Sheets(2).Range("A1:C20")
arr(2) = Sheets(2).Range("F1:F20")
End Sub
Gruß
Rudi

Anzeige
AW: 3 Fragen zu Arrays
29.01.2013 10:51:33
eres
Herzlichen Dank für Deine Hilfe, Rudi.
Wünsche Dir und allen Excel-Freunden einen erfolgreichen Tag.
Gruß
erwin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige