VBA - Zahlen - kurioses Problem

Hallo,

ich habe einen Code, der mir Kopfzerbrechen bereitet.

Dim Erg As Long
Erg = 3 + 2280 * 16
MsgBox Erg

Dieser Code erzeugt einen Überlauf in der zweiten Zeile, den ich nicht verstehe. Als Long sollte die Variable groß genug sein. Ergebnis wäre ja hier nur 36.480.

Wo ist mein (Denk)Fehler?

Gruß Tobi@s

Erg ist zwar Long. Die Berechnung erfolgt aber, bevor das Ergebnis einer Long-Variablen zugewiesen wird - im defaultmäßigen Datenformat. Und damit geht sie schief.

und wie müsste ich es jetzt richtig machen?

namd,

Beispiel:
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/overflow-error-6

grüße
lipi

Moin,

der Code ist weitgehend sinnfrei. Wenn als Long deklarierte Variablen verrechnet werden, läuft alles wie geplant.

Direktoperanden sind nicht Long, sondern Integer, deshalb scheppert’s. Wer dem abhelfen möchte, muss

Erg = CLng(3) + CLng(2280) * CLng(16)

schreiben.

Gruß
Ralf

2 Like

Danke.

Ja, der Code ist (erstmal) sinnfrei. Ich wollte hier nur nicht den kompletten Code schreiben, der fehlerfrei läuft. Es war nur das „Teilstück“.

Aber jetzt habe ich tatsächlich verstanden, wo mein Fehler war.

Gruß Tobi@s