Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum

Datum
15.09.2018 09:56:31
Ludwig
Moin, folgendes Makro:
Sub Datum()
Dim x As Date
Dim y As Date
Dim z As Date
x = Date
y = #2/5/2013#
z = x - y
MsgBox (x - y)
MsgBox (z)
End Sub

An sich ein simples Makro.
Das Ergebnis in der MsgBox (x - y) gibt mir die Anzahl an Tagen zurück, in dem Fall 2048. Das Ergebnis bei MsgBox (z) gibt mir eine Datumsangabe zurück, in dem Fall der 09.08.1905.
Bei MsgBox (z) ist mir das Ergebnis klar, da ich z als Datum deklariert habe. Soweit so gut. Aber warum gibt er mir dann bei MsgBox (x - y) eine ganze Zahl als Ergebnis, obwohl x und y auch als Datum deklariert sind?
Freue mich über eine Antwort und hoffe, dass Problem soweit verständlich erklärt zu haben.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum
15.09.2018 10:07:19
Sepp
Hallo Ludwig,
(x - z) gibt das Ergebnis der Subtraktion zurück und kein Datum!
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Datum
15.09.2018 10:09:57
RPP63
Moin!
Du hast Dir die Erklärung doch bereits selbst gegeben.
Die reine Subtraktion x-y ergibt einen long, nämlich die Differenz in Tagen.
Wenn Du diese Differenz einer Date-Variable zuweist, wird daraus ein Datum.
Lass mal folgendes Makro laufen:
Sub Datum()
Dim x As Date
Dim Diff&
Diff = 9 - 4
x = Diff
Debug.Print Diff
Debug.Print x
End Sub

Ergibt im Direktfenster:
 5
04.01.1900

Gruß Ralf
AW: Datum
15.09.2018 10:13:27
Gerd
Moin
Msgbox Vartype(x - y)
VarType-Konstanten
Siehe auch Zusatzinfo
Die folgenden Konstanten können überall im Code anstelle der tatsächlichen Werte verwendet werden:
Konstante Wert Beschreibung
vbEmpty 0 Nicht initialisiert (Voreinstellung)
vbNull 1 Enthält keine gültigen Daten
vbInteger 2 Wert vom Typ Integer
vbLong 3 Ganzzahl vom Typ Long
vbSingle 4 Fließkommawert einfacher Genauigkeit
vbDouble 5 Fließkommawert doppelter Genauigkeit
vbCurrency 6 Wert vom Typ Currency
vbDate 7 Wert vom Typ Date
vbString 8 Wert vom Typ String
vbObject 9 Objekt
vbError 10 Fehler
vbBoolean 11 Wert vom Typ Boolean
vbVariant 12 Wert vom Typ Variant (angewendet nur bei Datenfeldern mit Variant-Werten)
vbDataObject 13 Datenzugriffsobjekt
vbDecimal 14 Wert vom Typ Decimal
vbByte 17 Wert vom Typ Byte
vbUserDefinedType 36 Werte vom Typ Variant, die benutzerdefinierte Typen enthalten
vbArray 8192 Datenfeld
Gruß Gerd
Anzeige
Ich bin ein Dussel, Gerd ;)
15.09.2018 10:31:42
RPP63
Schließlich ist # das Typkennzeichen für double.
Die Differenz zweier doubles ergibt logischerweise keinen long.
Gruß Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige