VBA setzt automatisch # hinter Zahl
#1
Rainbow 
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
Top
#2
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
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#3
Welchen Wert kann Long maximal annehmen?
Was passiert, wenn du dein Makro ausführst?

Bei 64 bit gibt es LongLong
Schöne Grüße
Berni
Top
#4
Hallöchen,

das # ist ein "diskreter" Hinweis von Excel, dass die Zahl in den Bereich des Variablentyps Double passen könnte :17:
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Moin!
Nur ergänzend:
Im Direktfenster ergibt
?#5/3/20#
folgendes Ergebnis:
03.05.2020
(weil es korrekt als Datumsliteral erkannt wird)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
@Ralf,

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

Methode ohne geeignetes Objekt nicht zulässig
---------------------------
OK Hilfe
---------------------------
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste