Gibt es eine Konstante für max-Wert für den integer-Typ?

Ich bin auf der Suche nach einer Konstanten wie MAXINT in c#, VBA-code. Fand ich Verweise nur in anderen Sprachen, und kann nicht finden, eine für VBA.

Wenn es keine solche Konstante, was ist die maximale Anzahl ein int in VBA halten kann?
Ich habe versucht 2147483647 bekam aber einen überlauf-Fehler.

  • Eine ganze Zahl in VBA hat einen maximalen Wert von 32767 und mindestens -32768
  • Und für eine Long es 2^31 - 1 = 2147483647. AFAIK, es gibt keine Konstanten für, die.
  • Es sollte angemerkt werden, dass, da wir nicht mit 16-bit-Umgebungen nicht mehr, es fast nie Sinn macht zu nutzen, Integer über Lange.
  • Wenn ich Sie richtig verstehe, eine ganze Zahl in VBA in mein Win10 wird immer verbrauchen 4 Bissen?
  • Nein. Integer = 2 bytes. Aber es sei denn, Sie erstellen gigantischen arrays, Speicher ist nicht wirklich ein Thema mehr. Überlaufen ist.
  • Here eine Diskussion (von heute) zum Thema Visual C++, Polsterung Speicher usw. VBA wäre kein pad ein Integer auf 32bit?
  • Tja, gute Frage. Ich nahm immer den 2 bytes für selbstverständlich. Ich schlage vor, Sie versuchen es aus, die große arrays und beobachten Sie die Speicher-Auslastung mit dem Process Explorer.
  • Ok @Andre hier sind meine Ergebnisse: Vor der Ausführung von code, MS-Access-Prozess verbraucht 12.8~9 MB. Beim ausführen Dim intArr(100000) As Integer Prozess verbraucht 13.1 MB. Beim ausführen Dim lngArr(100000) So Lange Verarbeiten, verbraucht 13.3 MB. Die oben wurde getestet, 3 mal. Fazit: VBA funktioniert nicht-pad-Ganzzahlen in statische integer-arrays. Wie bei Kombinationen von ints und lngs, diese sind eigentlich arrays von Variatns oder Objekten (=refferences), und es ist schwer zu schließen...

InformationsquelleAutor MJH | 2016-06-15
Schreibe einen Kommentar