nicht genügend stapelspeicher
08.10.2003 08:34:21
andre
hallo allerseits,
hat eventuell jemand erfahrungen oder tips, wie man diesen fehler umgehen kann? ich habe ein paar makros, die mir etwas unter bestimmten bedingungen zusammenzählen sollen - wer sich mit statistik auskennt, dass soll so eine art histogramm werden.
ich habe das zählen mal über variablen realisiert, mal über zwischenspeichern in einer zelle, ...
das dumme ist, dass der fehler als ursache nicht viele daten hat. ich habe berechnungen mit über 1000 daten, und es geht. dann wieder welche mit 50, und der fehler kommt.
da sich der fehler auf ein oder zwei zu bewertende baugruppen konzentriert, hatte ich die vermutung, dass bei den datentypen was nicht stimmt. ich hole die daten aus einer datenbank. das scheint es aber auch nicht zu sein.
am anfang hatte ich auch den dr.watson - bei der ablage der zwischenergebnisse über zellen statt über das array stufung(). der kam übrigens unter Ex97. unter Ex2002 lief das makro durch, die ergebnisse waren i.o, aber es hat ewig gedauert. Ex2002 habe ich aber nur auf einem rechner, firmenstandard ist Ex97.
jetzt habe ich das problem mit dem stapelspeicher. allerdings zieht mein makro meist durch, aber dann fehlen einige ergebnisse oder sie sind falsch..
das ist für die bewertung schlimmer als wenn ich wegen dem dr. watson nichts habe.
hier mal zwei beispiele zur zählung:
hier stufe ich ein, die unteren abweichungen mit 0,2 - die oberen mit 0,5
test_bryg1 = 0: test_bryg2 = 0: test_bryg3 = 0: test_bryg4 = 0
For j = 0 To UBound(zaehler)
Select Case zaehler(j, 1)
Case 0
test_bryg4 = test_bryg4 + 1
Case 1
test_bryg1 = test_bryg1 + 1
Case 2
test_bryg2 = test_bryg2 + 1
Case 3
test_bryg3 = test_bryg3 + 1
Select Case zaehler(j, 2)
Case Is <= 0#
zaehler(j, 2) = zaehler(j, 2) 'ohne relevanz
Case Is <= 0.2
stufung(0) = stufung(0) + 1
Case Is <= 0.4
stufung(1) = stufung(1) + 1
Case Is <= 0.6
stufung(2) = stufung(2) + 1
Case Is <= 0.8
stufung(3) = stufung(3) + 1
Case Is <= 1#
stufung(4) = stufung(4) + 1
Case Is <= 1.5
stufung(5) = stufung(5) + 1
Case Is <= 2#
stufung(6) = stufung(6) + 1
Case Is < 999# ' für abweichungen grösser 2, 999 bedeutet kein messergebnis
stufung(7) = stufung(7) + 1
End Select
End Select
Next
For i = 0 To 7
Cells(varGesamtZeilen + 10 + i, 16 - test_max_mp) = stufung(i)
stufung(i) = 0
Next
...
'hier zähle ich die unterschiedlichen messpunktnamen
'diese namen treten öfter auf, z.b. "0815 x","0815 y" und "0815 z" ergibt 1x 0815
For k = 2 To varGesamtZeilen
If Left(Cells(k, test_max_mp), InStr(1, Cells(k, test_max_mp), " ")) <> _
Left(Cells(k - 1, test_max_mp), InStr(1, Cells(k - 1, test_max_mp), " ")) Then
GetAnzahl = GetAnzahl + 1
End If
Next
gruss andre