hallo,
ich muss mich gerade mal wieder über VBA wundern und da ich weis, dass 99% aller Fehler vor dem PC sitzen hoffe ich, dass ihr mir hier weiter helfen könnt:
das Problem in kürze: j nimmt werte >6 an und bringt daher das array zum überlaufen obwohl es eigentlich durch k>=4 gedeckelt sein müsste
also ich habe in meinem code (relativ umfangreich und daher hier nur ein minimaler schnipsel) folgendes:
code/
j=0
For j = k To 1 Step -1
If L * act(1, 7) / (1.5 + sta(3, 1) / 25) / act(j + 1, 6) > 3.5 Then ...
Next
/code
j ist wie folgt inizialisiert und wird von diversen Subs als zählerschleifen variable verwendet: Dim j as Integer
die Variable k kann Werte von 1 bis 4 annehmen und hat diese laut debugger auch.
das Array act() ist bis act(7, 9) definiert
das Array sta macht keine probleme da ich es direkt zuweise selbiges ist über die variable L zu sagen
Ich habe keine Ahnung wo das programm j=8 hernimmt ( in einer anderen sub läuft j zwar von 1 bis 8 aber eigentlich wirds ja doppelt überschrieben. einmal mit 0 und einmal mit k) wenn ich den fehler debugge muss ich nur die letzte zeile (For j = k To 1 Step -1) noch einmal lesen lassen und auf einmal nimmt er tatsächlich j=k aber immer erst im zweiten Anlauf. ich habe keine Ahnung warum und auch die j=0 nimmt er immer erst wenn man ihn per debugger dazu zwingt
hat mir jemand einen Tipp wie ich dieses Problem in den griff bekomme? er scheint ja wirklich ganze zeilen zu ignorieren
gruß
Pyrukar
ich muss mich gerade mal wieder über VBA wundern und da ich weis, dass 99% aller Fehler vor dem PC sitzen hoffe ich, dass ihr mir hier weiter helfen könnt:
das Problem in kürze: j nimmt werte >6 an und bringt daher das array zum überlaufen obwohl es eigentlich durch k>=4 gedeckelt sein müsste
also ich habe in meinem code (relativ umfangreich und daher hier nur ein minimaler schnipsel) folgendes:
code/
j=0
For j = k To 1 Step -1
If L * act(1, 7) / (1.5 + sta(3, 1) / 25) / act(j + 1, 6) > 3.5 Then ...
Next
/code
j ist wie folgt inizialisiert und wird von diversen Subs als zählerschleifen variable verwendet: Dim j as Integer
die Variable k kann Werte von 1 bis 4 annehmen und hat diese laut debugger auch.
das Array act() ist bis act(7, 9) definiert
das Array sta macht keine probleme da ich es direkt zuweise selbiges ist über die variable L zu sagen
Ich habe keine Ahnung wo das programm j=8 hernimmt ( in einer anderen sub läuft j zwar von 1 bis 8 aber eigentlich wirds ja doppelt überschrieben. einmal mit 0 und einmal mit k) wenn ich den fehler debugge muss ich nur die letzte zeile (For j = k To 1 Step -1) noch einmal lesen lassen und auf einmal nimmt er tatsächlich j=k aber immer erst im zweiten Anlauf. ich habe keine Ahnung warum und auch die j=0 nimmt er immer erst wenn man ihn per debugger dazu zwingt
hat mir jemand einen Tipp wie ich dieses Problem in den griff bekomme? er scheint ja wirklich ganze zeilen zu ignorieren
gruß
Pyrukar