Laufzeitfehler 6: Überlauf
22.10.2015 23:43:56
Matthias
und zwar geht es um ein Knobelrätsel einer Schulaufgabe. Gleich vornweg für die vielbeschäftigten unter Euch - dies ist kein wirkliches Problem, nur eine Verständnisfrage.
Zur Lösung der Aufgabe habe ich die Variablen a bis i als Byte deklariert, da sie jeweils nur von 1 bis 9 benötigt werden und der Typ mit 0 bis 255 mehr als ausreichend seien sollte. Das Problem dabei ist der Laufzeitfehler 6: 'Überlauf', welcher mir das Programm sofort ohne Analysemöglichkeit abbricht, daher kann ich auch keine Werte für die Variablen bestimmen um eventuell daraus etwas abzuleiten. Das Überraschende daran ist, dass 6 Variablen mit Byte zufrieden sind, jedoch c, e und g partout nicht diesen Typ fressen wollen.
Bevor jetzt jemand kommt "Na dann nutz doch Long", das weis ich selbst. Mich interessiert die Theorie dahinter um ein besseres Verständnis für VBA zu erlangen. Warum tritt dies nur bei diesen 3 Variablen auf?
Hier dazu die Wenn-Bedingung bei welcher mit das Makro sang- und klanglos flöten geht:
If (a + b - c) = 4 And (d - e + f) = 8 And (g * h - i) = 8 _
And (a + d - g) = 6 And (b * e - h) = 2 And (c + f - i) = 6 Then
https://www.herber.de/bbs/user/100984.xlsm
Nach ein bisschen mehr rumprobieren habe ich folgendes noch feststellen können:
c, e und g scheitern jeweils an beiden Gleichungen in denen sie vorkommen, ich kann mir darauf jedoch keinen Reim machen. Erst dachte ich, es liegt daran dass z.B. c subtrahiert wird, jedoch ist dies in der letzten Gleichnung nicht der Fall und i schert sich 'nen Sch*** darum, obwohl sie Byte ist. Gleiches gilt für die Multiplikation.
Das Zerlegen der Bedingung in einzelne If's für jede Gleichung macht auch keinen Unterschied.
Wäre super wenn sich einer der Spezialisten unter euch die Mühe aufsich nimmt und meine Frage beantworten kann.
vielen Dank im voraus,
Matthias M.