Startseite

Die DateDiff-Funktion (VBA)

Zur Berechnung von Zeitabständen bezogen auf ein Datum, stellt VBA eine spezielle Funktion zur Verfügung. Diese möchte ich hier etwas näher beschreiben.
Die Formel kann zum Beispiel so aussehen: Cells(1, 1) = DateDiff("YYYY", "26.03.1987", "28.02.2003").
Als Ergebnis würde in der Zelle A1 die Differenz zwischen den beiden Datumsangaben in vollen Jahren ausgegeben. Die "Überhängenden" Tage, die kein volles Jahr ergeben, finden keine Berücksichtigung. Das gilt auch für die anderen Einstellungen dieser Funktion, außer Tage, Minuten und Sekunden.
An Stelle der Einstellung "YYYY" für Jahre, sind auch folgende Angaben zulässig:
Einstellung Art der Ausgabe Bemerkung
yyyy Jahr Anzahl der Kalenderjahre
q Quartale Anzahl der Quartale
m Monate Anzahl der Monate
y Tag des Jahres Anzahl der Tage
d Tage Anzahl der Tage
w Wochentag Anzahl der Wochentage zwischen den Terminen. Fällt der erste Termin zum Beispiel auf einen Montag, werden alle Montage zwischen den Terminen gezählt. Wobei der erste Montag (Starttermin) nicht berücksichtigt wird.
ww Wochen Anzahl der Kalenderwochen
h Stunden Anzahl der Stunden zwischen den Terminen.
n Minuten Anzahl der Minuten zwischen den Terminen.
s Sekunden Anzahl der Sekunden zwischen den Terminen.
Weiterhin ist es möglich, an Stelle des Datums im "Klartext", eine Variable zu verwenden. Das könnte dann so aussehen: Cells(1, 1) = DateDiff("YYYY", Cells(1, 3), Now). Dabei verweist der Cells-Befehl auf eine Zelle des Tabellenblatts (C1), Now steht für den aktuellen Tag.
Wenn der zweite Datumswert vor dem ersten liegt, werden negative Werte ausgegeben (z. B. -16 für Jahre).