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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige