Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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)
Antworten 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)
Antworten 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)
Antworten Top


Gehe zu:


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