Clever-Excel-Forum

Normale Version: VBA setzt automatisch # hinter Zahl
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo ins Forum,

ich wundere mich gerade über folgendes Verhalten von VBA in Excel:

Ich deklariere eine Variable beispielsweise vom Typ Long und weise eine sehr große Zahl zu.

Excel setzt dann automatisch ein #-Zeichen hinter die Zahl. Löscht man das #-Zeichen und verlässt die Zeile, wird es sofort wieder gesetzt.
Excel legt dieses Verhalten ab 10 Milliarden an den Tag.

So sieht das im Editor aus:


Code:
Sub Zahlen()
  Dim lngZahl As Long
  lngZahl = 10000000000#

  MsgBox lngZahl
End Sub

Die MsgBox gibt die Zahl übrigens völlig korrekt aus. Ich verstehe bloß nicht, was es mit dem #-Zeichen auf sich hat.

Kann jemand helfen?

PS: Ich nutze Excel für Office 365 (64 Bit) 

Beste Grüße
zachy
Datentypen nachschauen

Fiele die Dim weg, wäre auch Binärzahl statt Dez.Zahl denkbar. Vielleicht daher ein Sicherheitsinstrument.

Vermutlich richtige Antwort: 10.000.000.000 ist größer, als Long erlaubt. Denn Long kann nur =2^15*2^16 = 2.147.483.648
Welchen Wert kann Long maximal annehmen?
Was passiert, wenn du dein Makro ausführst?

Bei 64 bit gibt es LongLong
Hallöchen,

das # ist ein "diskreter" Hinweis von Excel, dass die Zahl in den Bereich des Variablentyps Double passen könnte :17:
Moin!
Nur ergänzend:
Im Direktfenster ergibt
?#5/3/20#
folgendes Ergebnis:
03.05.2020
(weil es korrekt als Datumsliteral erkannt wird)

Gruß Ralf
@Ralf,

oder es kommt das:
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Fehler beim Kompilieren:

Methode ohne geeignetes Objekt nicht zulässig
---------------------------
OK Hilfe
---------------------------