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

Array Index Laufzeitfehler 9

Array Index Laufzeitfehler 9
07.02.2013 18:43:35
Johannes
Hi,
ich stehe gerade vor einem Problem bei dem mich mein Wissen und Google im Stich lassen. Ich fülle ein Array über ein Makro mit Wert und möchte Anschließend die Werte ausgeben.
Variante 1 das Array wird direkt mit Werten befüllt
Variante 2 die Werte werden aus einer Tablle eingelesen
Variante 1 arrComboBox = Array("A", "B", "C")
Variante 2 arrComboBox = Range(.Cells(2, i), .Cells(j, i)).Value
For i = 0 To UBound(arrComboBox)
MsgBox arrComboBox(i)
Next
For Each x In arrComboBox
MsgBox x
Next
Warum funktioniert die Ausgabe in der MsgBox mit Variante 1 problemlos und bei Variante 2 erhalte ich den Laufzeitfehler 9 Index außerhalb des gültigen Bereichs?
Die Ausgabe mit For Each funktioniert in beiden Fällen.
Kann mir jemand auf die Sprünge helfen wo hier der Unterschied liegt?
Danke und Gruß Johannes

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Index 0 gibt's in Var2 nicht, weil ...
07.02.2013 19:27:53
Luc:-?
…der Bereichsinhalt dem Array direkt übertragen wird, Johannes!
Es dürfte sich hier um eine Variable vom Typ Variant handeln, die ein Datenfeld (Array) enthält. Das ist zwar auch bei Var1 der Fall, aber da wirkt der Standard-vbIdx ab 0. Bereiche zählen ihre Indizes aber ab 1!
Außerdem gibt's noch 'ne Menge mehr, was bei DFeldern zu beachten ist. Aber das wirst du schon nach und nach herausfinden. Übrigens, das Forumsarchiv kann dich gut dabei unterstützen (hätte dir auch diesen Fall erklärt)!
Gruß Luc :-?

Wo finde ich denn die interessante Lektüre?
07.02.2013 19:44:07
Johannes
Hi Luc,
das mit dem 0 und 1 ist mir auch aufgefallen. Ich habe es auch mit der Variante i = LBound(arrComboBox) versucht, da müsste ja immer mit dem ersten Wert begonnen werden. Hilft aber nichts immer das gleiche Problem.
Gefunden habe ich bei meiner Suche leider nichts, vermutlich habe ich nicht gewusst wonach ich suchen muss. Hast du mir einen Tipp wie ich an das richtig gute Zeuge komme ;-) (sprich wonach muss ich genau suchen)?
Warum ich aber dann auch mit zB i=2 keinen Wert kriege (das müsste ja gemäß der Logik sowohl in Variante 1 und 2 vorhanden sein) stellt mich dennoch vor ein Rätsel.
Ich freue mich schon auf die Lektüre. Danke
Gruß Johannes

Anzeige
Den 2.Teil findest du in Gerds AW, ...
07.02.2013 20:13:59
Luc:-?
…Johannes!
Stichwörter für die Suche im Forumsarchiv:
Array, Datenfeld, DFeld, Variant; VBA-Literatur
Lektüre wurde hier nämlich auch schon oft nachgefragt. Außerdem gibt's Erläuterungen vom Forumsbetreiber auf den Forumsseiten (Forum&Services) und als WikiBook. In anderen xlForen/-WebSites ist auch viel erklärt, zB auf Online-Excel.
Luc :-?

@ Luc ... Mercy oT
07.02.2013 20:17:01
Johannes

@ Luc ... Mercy? Was hast du getan, dass...
08.02.2013 06:58:08
Marc
sich Johannes ein Gnadengesuch von Dir erbittet!?
Wieder auf subtile Art harsche Kritik in sarkastischer Form geäußert!?!
Jedenfalls kann ich derartiges hier nicht entdecken...
Gruß, MCO ;-)

Anzeige
Er meint's sicher frangceuzich... ;-) schöWE owT
08.02.2013 18:33:28
Luc:-?
:-?

AW: Array Index Laufzeitfehler 9
07.02.2013 19:52:11
Gerd
Hallo Johannes,
der zweite Teil der Wahrheit zu Variante 2. Dieses Datenfeld ist zweidimensional.
Msgbox LBound(arrComboBox, 1)
Msgbox UBound(arrComboBox, 1)
Msgbox LBound(arrComboBox, 2)
Msgbox UBound(arrComboBox, 2)
For i = LBound(arrComboBox, 1box, 1) To UBound(arrComboBox, 2)
For j = LBound(arrComboBox, 1box, 2) To UBound(arrComboBox, 2)
MsgBox arrComboBox(i, j)
Next
Next
Gruß Gerd

... das erklärt vieles
07.02.2013 20:15:45
Johannes
Hallo Gerd,
danke für den Imput. Es läuft jetzt so wie es soll.
Gruß Johannes

AW: Array Index Laufzeitfehler 9
07.02.2013 20:19:34
Gerd
Hallo Johannes,
erstmal mein Beitrag nochmals entmüllt.
Msgbox LBound(arrComboBox, 1)
Msgbox UBound(arrComboBox, 1)
Msgbox LBound(arrComboBox, 2)
Msgbox UBound(arrComboBox, 2)
For i = LBound(arrComboBox, 1) To UBound(arrComboBox, 1)
For j = LBound(arrComboBox, 2) To UBound(arrComboBox, 2)
MsgBox arrComboBox(i, j)
Next
Next
Ferner versuche ich, noch eine sinnvolle Abhandlung über Datenfelder zu finden.
Dies kann aber eine gewisse Zeit dauern.
Gruß Gerd

Anzeige
nochmal danke
07.02.2013 20:39:40
Johannes
Hi Gerd,
soweit konnte ich dem Code schon folgen :-).
Gruß Johannes

Wetten, Gerd, dass du keine findest, ...
08.02.2013 01:48:52
Luc:-?
…in der alles steht, was mit Datenfeldern und bei ihrer Verarbeitung möglich ist!
Morrn, Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige