Frage

Diese Deklaration verursacht einen Überlauf in VBA:

Const OVERFLOWS As Long = 10 * 60 * 60

, während der Wert Einstellung direkt in Ordnung ist:

Const COMPILES_OK As Long = 36000

Wie überzeugen Sie VBA wörtliche ganze Zahlen als Long-Positionen zu behandeln?

Danke

War es hilfreich?

Lösung

Fügen Sie den long Suffix & auf mindestens eine Zahl:

Const OVERFLOWS As Long = 10& * 60 * 60

Beachten Sie, dass die CLNG Funktion mit den Werten konvertieren wird nicht funktionieren long, weil VBA nicht den Rückgabewert einer Funktion auf eine konstante Zuordnung erlaubt.

Andere Tipps

http://support.microsoft.com/kb/191713 ist eine schöne Zusammenfassung der Typdeklaration Zeichen in VBA / VB4-6.

Für diejenigen, die das & Symbol ein bisschen esoterisch, eine Alternative zu finden, ist die CLNG Funktion zu verwenden, die eine Nummer zu lang wandelt

Const OVERFLOWS As Long = CLNG(10) * 60 * 60

Sie könnten dann eine ähnliche Sache für eine einzelne Konstante tun

Const OVERFLOWS As Single = CSNG(10) * 60 * 60
Konst überlaufen As Long = (10 & * 60 * 60):

Der Typ Charakter kann auch auf Literale angehängt werden (Man ist suffucient tatsächlich wegen der Art und Weise des VBA-Engine wertet den Ausdruck).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top