Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

out of range error

Forumthread: out of range error

out of range error
06.01.2004 10:58:44
Gorginio
Hallo zusammen,

Warum erhalte ich bei der For schleife einen out of range error??

....
' Funktionierende Schleife zum einlesen des arrays; (array zeilenindex = i)
' letzten Wert fuer i an n uebergeben
n = i

i = 1
For i = 1 To n Step 1
If Data_array(i, 1) = "Hund" And Data_array(i, 2) = "Haus" Then
Debug.Print Data_array(i, 1) & " " & Data_array(i, 2);
End if
Next i
....
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: out of range error
06.01.2004 11:03:50
Hans W. Herber
Hallo Gorginio,

in Dienem Beispiel wird eine Schleife über einen Datensatz geführt (Step 1 kann übrigens entfallen). Kann es sein, dass das Array nicht mit der Startzahl 1 initialisiert wurde und der erste Datensatz den Zeilenindex 0 hat?

gruss hans
AW: out of range error
06.01.2004 12:13:43
Gorginio
Hallo Hans,

Nein, ich habe

Option Explicit
Option Base 1

angeben.

gruss Georg
Anzeige
AW: out of range error
06.01.2004 12:19:18
Martin Beck
Hallo Georg,

irgendwo in Deinem Code hast Du den Array deklariert und gefüllt und so lange Du uns den Code vorenthältst, läßt sich nicht viel sagen. Also: poste den kompletten Code.

Gruß
Martin Beck
AW: out of range error
06.01.2004 17:08:48
Gorginio
Sorry, fuer die spaete Antwort,
hier nun der gesamte code...

Warum out of range???

Option Explicit
Option Base 1

'Finds last row with data in the table INSERT HERE

Function last_row_address(s As String, column1 As Integer)
last_row_address = Cells(Rows.Count, 1).End(xlUp).Row
End Function



Sub selector()
Dim i, j, l, m, n As Integer
Dim Data_array() As String
Dim lastrow As Long
lastrow = last_row_address("INSERT HERE", 1)
Sheets("INSERT HERE").Activate
ReDim Data_array(1 To lastrow, 1 To 2)
i = 1
' 3 rows headline
j = 4
For i = 1 To lastrow Step 1
Data_array(i, 1) = Cells(j, 1).Value
Data_array(i, 2) = Cells(j, 2).Value
j = j + 1
Next i
n = i
i = 1
For i = 1 To n
If Data_array(i, 1) = "Tier" And Data_array(i, 2) = "Haus" Then
Debug.Print Data_array(i, 1) & " " & Data_array(i, 2);
End If
Next i
End Sub

Anzeige
AW: out of range error
06.01.2004 17:42:39
Martin Beck
Hallo Georg,

nimm statt

n = i

n = i - 1

In der Schleife wird i hochgezählt und zwar bis lastrow + 1 (immer eins weiter, als in der Schleife angegeben. Da Du den Array nur mit lastrow deklariert hast, läuft die letzte Schleife im letzten Durchlauf auf einen Fehler, weil n = lastrow + 1 und das ist out of range.

Gruß
Martin Beck
Anzeige
AW: out of range error
09.01.2004 15:50:39
Gorginio
Danke fuer den Tip, das war's nun rennt das Ding

Liebe Gruesse,
Gorginio
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige