Dim x, y, ergebnis As Integer
Ja, das ist die übliche Tücke der ein C/C++'ler zum Opfer fällt.
Da steht also eigentlich:
Dim x As Variant, y As Variant, ergebnis As Integer
Wenn bei einer Deklaration kein datentyp angegeben wird, wird er automatisch Variant (ein Datentyp der automatisch Untertypen je nach zugewiesenen Wert annimmt, z.B. Variant/Integer wenn der Wert im Bereich des Integers liegt, wenn ein Wert nicht mehr im Bereich des Integer liegt, wird der nächst höhere getestet und bei Zulässigkeit gewählt ... z.B. Variant/Long, Variant/String, usw.).
PS: Aus dem Grund sollte man sich in VB/VBA die folgende Schreibweise angewöhnen (zeilenweise deklarieren):
Dim x As Integer
Dim y As Integer
Dim ergebnis As Integer
Ließt sich so auch besser, statt auf einer Zeile.
PS: Der Vollständigkeit halber (ich rate aber davon ab). Die meisten Grunddatentypen haben ein Kürzel, für Integer ist es z.B. das Prozent (%).
Dim x%, y%, ergebnis As Integer 'alle drei Variablen sind Integer Variablen
|