VBA – Datumsfunktionen
In this Article
- VBA – Date-Funktion
- VBA – Now-Funktion
- VBA – Time-Funktion
- VBA – DateAdd-Funktion
- VBA – DateDiff-Funktion
- VBA – DatePart-Funktion
- VBA – DateSerial-Funktion
- VBA – DateValue-Funktion
- VBA – Day-Funktion
- VBA – Hour-Funktion
- VBA – Minute-Funktion
- VBA – Second-Funktion
- VBA – Month-Funktion
- VBA – MonthName-Funktion
- VBA – TimeSerial-Funktion
- VBA – TimeValue-Funktion
- VBA – WeekDay-Funktion
- VBA – WeekDayName-Funktion
- VBA – Year-Funktion
- Vergleich von Datumsangaben in VBA
In diesem Tutorial werden wir die verschiedenen eingebauten VBA-Datumsfunktionen behandeln.
VBA – Date-Funktion
Sie können die Date-Funktion verwenden, um das aktuelle Datum zu ermitteln.
Die Syntax der Date-Funktion lautet Date(). Sie hat keine Argumente.
Der folgende Code zeigt Ihnen, wie Sie die Date-Funktion verwenden können:
Sub VerwendungDateFunktion()
Dim dasDatum As Date
dasDatum = Date()
Debug.Print dasDatum
End Sub
Das Ergebnis, das im Direktfenster angezeigt wird, lautet:
VBA – Now-Funktion
Sie können die Now-Funktion verwenden, um das aktuelle Datum und die aktuelle Uhrzeit zu ermitteln.
Die Syntax der Now-Funktion lautet Now(). Sie hat keine Argumente.
Der folgende Code zeigt Ihnen, wie Sie die Now-Funktion verwenden können:
Sub VerwendungNowFunktion()
Dim dasDatum As Date
dasDatum = Now()
Debug.Print dasDatum
End Sub
Das Ergebnis ist:
VBA – Time-Funktion
Mit der Time-Funktion können Sie die aktuelle Uhrzeit zurückgeben.
Die Syntax der Time-Funktion lautet Time(). Sie hat keine Argumente.
Der folgende Code zeigt Ihnen, wie Sie die Time-Funktion verwenden können:
Sub VerwendungTimeFunktion()
Dim dieUhrzeit As Date
dieUhrzeit = Time()
Debug.Print dieUhrzeit
End Sub
Das Ergebnis ist:
VBA – DateAdd-Funktion
Sie können die DateAdd-Funktion verwenden, um ein Datums- bzw. Zeitintervall zu einem Datum oder einer Uhrzeit hinzuzufügen und die Funktion gibt das resultierende Datum bzw. die resultierende Uhrzeit zurück.
Die Syntax der DateAdd-Funktion lautet:
DateAdd(Intervall, Zahl, Datum) wobei:
- Intervall: Eine Zeichenfolge, die den Typ des zu verwendenden Intervalls angibt. Das Intervall kann einem der folgenden Werte entsprechen:
„d“ – Tag
ww“ – Woche
„w“ – Wochentag
„m“ – Monat
„q“ – Quartal
„jjjj“ – Jahr
„y“ – Tag des Jahres
„h“ – Stunde
„n“ – Minute
„s“ – Sekunde
- Zahl: Die Anzahl der Intervalle, die Sie zum ursprünglichen Datum/Uhrzeit hinzufügen möchten.
- Datum: Das ursprüngliche Datum/die ursprüngliche Uhrzeit.
Hinweis: Wenn Sie Datumsangaben in Ihrem Code verwenden, müssen Sie sie mit # oder Anführungszeichen umgeben.
Der folgende Code zeigt, wie man die DateAdd-Funktion verwendet:
Sub VerwendungDateAddFunktion()
Dim spaeteresDatum As Date
spaeteresDatum = DateAdd("m", 10, "11/12/2019")
Debug.Print spaeteresDatum
End Sub
Das Ergebnis ist:
VBA – DateDiff-Funktion
Sie können die DateDiff-Funktion verwenden, um die Differenz zwischen zwei Datumsangaben auf der Grundlage eines bestimmten Zeitintervalls zu ermitteln.
Die Syntax der DateDiff-Funktion lautet:
DateDiff(Intervall, Datum1, Datum2, [ErsterTagderWoche], [ErsteWochedesJahres]) wobei:
- Intervall: Eine Zeichenfolge, die den Typ des zu verwendenden Intervalls angibt. Das Intervall kann einem der folgenden Werte entsprechen:
„d“ – Tag
„ww“ – Woche
„w“ – Wochentag
„m“ – Monat
„q“ – Quartal
„jjjj“ – Jahr
„y“ – Tag des Jahres
„h“ – Stunde
„n“ – Minute
„s“ – Sekunde
- Datum1: Ein Datumswert, der das frühere Datum darstellt.
- Datum2: Ein Datumswert, der das spätere Datum darstellt.
- ErsterTagderWoche(Optional): Eine Konstante, die den Wochentag angibt, den die Funktion als ersten Tag der Woche verwenden soll. Wenn sie leer ist, wird der Sonntag als erster Wochentag verwendet. Der erste Wochentag kann einem der folgenden Werte entsprechen:
-vbSunday – verwendet den Sonntag als ersten Tag der Woche.
-vbMonday – verwendet Montag als ersten Tag der Woche.
-vbTuesday – verwendet Dienstag als ersten Tag der Woche.
-vbWednesday – verwendet Mittwoch als ersten Tag der Woche.
-vbThursday – verwendet Donnerstag als ersten Tag der Woche.
-vbFriday – verwendet Freitag als ersten Tag der Woche.
-vbSaturday – verwendet Samstag als ersten Tag der Woche.
-vbUseSystemDayOfTheWeek – verwendet den ersten Tag der Woche, der durch die Einstellungen Ihres Systems festgelegt ist.
- ErsteWochedesJahres (Optional): Eine Konstante, die die erste Woche des Jahres angibt. Wenn sie leer ist, wird die 1. Januarwoche als erste Woche des Jahres verwendet. Die erste Woche des Jahres kann einem der folgenden Werte entsprechen:
-vbFirstJan1 – verwendet die Woche, die den 1. Januar enthält.
-vbFirstFourDays – verwendet die erste Woche, die mindestens vier Tage aus dem neuen Jahr enthält.
-vbFirstFullWeek – verwendet die erste volle Woche des Jahres.
-vbSystem – verwendet die erste Woche des Jahres, wie in den Systemeinstellungen angegeben.
Der folgende Code zeigt Ihnen, wie Sie die DateDiff-Funktion verwenden können:
Sub VerwendungDateDiffFunktion()
Dim dieDifferenzZwischenZweiDaten As Long
dieDifferenzZwischenZweiDaten = DateDiff("q", "11/11/2010", "10/12/2012")
Debug.Print dieDifferenzZwischenZweiDaten
End Sub
Das Ergebnis ist:
VBA – DatePart-Funktion
Sie können die DatePart-Funktion verwenden, um einen Teil (Tag, Woche, Quartal, Monat usw.) eines bestimmten Datums zurückzugeben.
Die Syntax der DatePart-Funktion lautet: DatePart(Intervall, Datum,[ErsterTagderWoche], [ErsteWochedesJahres]) wobei:
- Intervall: Eine Zeichenkette, die den Teil des Datums angibt, der zurückgegeben werden soll. Das Intervall kann einem der folgenden Werte entsprechen:
„d“ – Tag
„ww“ – Woche
„w“ – Wochentag
„m“ – Monat
„q“ – Quartal
„jjjj“ – Jahr
„y“ – Tag des Jahres
„h“ – Stunde
„n“ – Minute
„s“ – Sekunde
- Datum: Das Datum, von dem die Funktion einen Teil zurückgeben soll.
- ErsterTagderWoche (Optional): Eine Konstante, die den Wochentag angibt, den die Funktion als ersten Tag der Woche verwenden soll. Wenn sie leer ist, wird der Sonntag als erster Wochentag verwendet. Der erste Wochentag kann einem der folgenden Werte entsprechen:
-vbSunday – verwendet den Sonntag als ersten Tag der Woche.
-vbMonday – verwendet Montag als ersten Tag der Woche.
-vbTuesday – verwendet Dienstag als ersten Tag der Woche.
-vbWednesday – verwendet Mittwoch als ersten Tag der Woche.
-vbThursday – verwendet Donnerstag als ersten Tag der Woche.
-vbFriday – verwendet Freitag als ersten Tag der Woche.
-vbSaturday – verwendet Samstag als ersten Tag der Woche.
-vbUseSystemDayOfTheWeek – verwendet den ersten Tag der Woche, der durch die Einstellungen Ihres Systems festgelegt ist.
- ErsteWochedesJahres (Optional): Eine Konstante, die die erste Woche des Jahres angibt. Wenn sie leer ist, wird die 1. Januarwoche als erste Woche des Jahres verwendet. Die erste Woche des Jahres kann einem der folgenden Werte entsprechen:
-vbFirstJan1 – verwendet die Woche, die den 1. Januar enthält.
-vbFirstFourDays – verwendet die erste Woche, die mindestens vier Tage aus dem neuen Jahr enthält.
-vbFirstFullWeek – verwendet die erste volle Woche des Jahres.
-vbSystem – verwendet die erste Woche des Jahres, wie in den Systemeinstellungen angegeben.
Der folgende Code zeigt Ihnen, wie Sie die DatePart-Funktion verwenden können:
Sub VerwendungDatePartFunktion()
Dim derTeilVomDatum As Integer
derTeilVomDatum = DatePart("yyyy", "12/12/2009")
Debug.Print derTeilVomDatum
End Sub
Das Ergebnis ist:
VBA – DateSerial-Funktion
Die VBA DateSerial-Funktion nimmt eine Eingabe von Jahr, Monat und Tag und gibt ein Datum zurück.
Die Syntax der DateSerial-Funktion lautet:
DateSerial(Jahr, Monat, Tag) wobei:
- Jahr: Ein ganzzahliger Wert zwischen 100 und 9999, der das Jahr angibt.
- Monat: Ein ganzzahliger Wert, der den Monat angibt.
- Tag: Ein ganzzahliger Wert, der für den Tag steht.
Der folgende Code zeigt Ihnen, wie Sie die DateSerial-Funktion verwenden können:
Sub VerwendungDateSerialFunktion()
Dim dasDatum As Date
dasDatum = DateSerial(2010, 11, 10)
Debug.Print dasDatum
End Sub
Das Ergebnis ist:
VBA – DateValue-Funktion
Die DateValue-Funktion gibt ein Datum zurück, wenn eine Zeichenkette als Datum angegeben wird.
Die Syntax der DateValue-Funktion lautet:
DateValue(Datum) wobei:
- Datum: Eine Textzeichenkette, die das Datum darstellt.
Der folgende Code zeigt Ihnen, wie Sie die DateValue-Funktion verwenden können:
Sub VerwendungDateValueFunktion()
Dim dasDatum As Date
dasDatum = DateValue("October, 29, 2010")
Debug.Print dasDatum
End Sub
Das Ergebnis ist:
VBA – Day-Funktion
Sie können die Day-Funktion verwenden, um den Tag eines Eingabedatums zu ermitteln.
Die Syntax der Day-Funktion lautet:
Day(Datumswert) wobei:
- Datumswert: Das Datum, aus dem Sie den Tag extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Day-Funktion verwenden können:
Sub VerwendungDayFunktion()
Dim derTag As Integer
derTag = Day("10/12/2010")
Debug.Print derTag
End Sub
Das Ergebnis ist:
VBA – Hour-Funktion
Mit der Hour-Funktion können Sie die Stunde einer eingegebenen Uhrzeit zurückgeben.
Die Syntax der Hour-Funktion lautet:
Hour(Uhrzeit) wobei:
- Uhrzeit: Die Uhrzeit, aus der Sie die Stunde extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Hour-Funktion verwenden können:
Sub VerwendungHourFunktion()
Dim dieStunde As Integer
dieStunde = Hour("2:14:17 AM")
Debug.Print dieStunde
End Sub
Das Ergebnis ist:
VBA – Minute-Funktion
Sie können die Minute-Funktion verwenden, um den Minutenwert einer Eingabezeit zurückzugeben.
Die Syntax der Minute-Funktion lautet:
Minute(Eingabezeit) wobei:
- Eingabezeit – Die Uhrzeit, aus der Sie den Minutenwert extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Minute-Funktion verwenden können:
Sub VerwendungMinuteFunktion()
Dim derMinutenWert As Integer
derMinutenWert = Minute("2:14:17 AM")
Debug.Print derMinutenWert
End Sub
Das Ergebnis ist:
VBA – Second-Funktion
Sie können die Second-Function verwenden, um den Sekundenwert einer Eingabezeit zurückzugeben.
Die Syntax der Second-Funktion lautet:
Second(Eingabezeit) wobei:
- Eingabezeit – Die Uhrzeit, aus der Sie den Sekundenwert extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Second-Funktion verwenden können:
Sub VerwendungSecondFunktion()
Dim derSekundeWert As Integer
derSekundeWert = Second("2:14:17 AM")
Debug.Print derSekundeWert
End Sub
Das Ergebnis ist:
VBA – Month-Funktion
Sie können die Month-Funktion verwenden, um den Monat eines Eingabedatums zu ermitteln.
Die Syntax der Monatsfunktion lautet:
Monat(Datumswert) wobei:
- Datumswert: Das Datum, aus dem Sie den Monat extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Month-Funktion verwenden können:
Sub VerwendungMonthFunktion()
Dim derMonat As Integer
derMonat = Month("11/18/2010")
Debug.Print derMonat
End Sub
Das Ergebnis ist:
VBA – MonthName-Funktion
Sie können die MonthName-Funktion verwenden, um den Namen eines Monats aus einer eingegebenen Monatsnummer zu ermitteln.
Die Syntax der Funktion Monatsname lautet:
MonthName(MonatsNummer, [Abkürzung]) wobei:
- MonatsNummer: Ein ganzzahliger Wert zwischen 1 und 12.
- Abkürzung (Optional): Gibt an, ob der Monatsname abgekürzt werden soll. Wenn das Feld leer ist, wird der Standardwert „False“ verwendet.
Sub VerwendungMonthNameFunktion()
Dim derMonatsName As String
derMonatsName = MonthName(12, True)
Debug.Print derMonatsName
End Sub
Das Ergebnis ist:
VBA – TimeSerial-Funktion
Die TimeSerial-Funktion nimmt eine Eingabe der Stunde, Minute und Sekunde und gibt eine Zeit zurück.
Die Syntax der TimeSerial-Funktion lautet:
TimeSerial(Stunde, Minute, Sekunde) wobei:
- Stunde: Ein ganzzahliger Wert zwischen 0 und 23, der den Stundenwert darstellt.
- Minute: Ein ganzzahliger Wert zwischen 0 und 59, der den Minutenwert darstellt.
- Sekunde: Ein ganzzahliger Wert zwischen 0 und 59, der den Sekundenwert darstellt.
Der folgende Code zeigt Ihnen, wie Sie die TimeSerial-Funktion verwenden können:
Sub VerwendungTimeSerialFunktion()
Dim dieUhrzeit As Date
dieUhrzeit = TimeSerial(1, 10, 15)
Debug.Print dieUhrzeit
End Sub
Das Ergebnis ist:
VBA – TimeValue-Funktion
Die TimeValue-Funktion gibt eine Zeit aus einer String-Darstellung eines Datums oder einer Uhrzeit zurück.
Die Syntax der TimeValue-Funktion lautet:
TimeValue(Uhrzeit) wobei:
- Uhrzeit: Eine Textzeichenkette, die die Uhrzeit angibt.
Der folgende Code zeigt Ihnen, wie Sie die TimeValue-Funktion verwenden können:
Sub VerwendungTimeValueFunktion()
Dim dieUhrzeit As Date
dieUhrzeit = TimeValue("22:10:17")
Debug.Print dieUhrzeit
End Sub
Das Ergebnis ist:
VBA – WeekDay-Funktion
Mit der WeekDay-Funktion können Sie eine ganze Zahl von 1 bis 7 zurückgeben, die einen Wochentag aus einem Eingabedatum darstellt.
Die Syntax der WeekDay-Funktion lautet:
WeekDay(Datum, [ErsterTagDerWoche]) wobei:
- Datum: Das Datum, aus dem Sie den Wert des Wochentags extrahieren möchten.
- ErsterTagDerWoche (Optional): Eine Konstante, die den Wochentag angibt, den die Funktion als ersten Tag der Woche verwenden soll. Wenn sie leer ist, wird der Sonntag als erster Wochentag verwendet. Der erste Tag der Woche kann einem der folgenden Werte entsprechen:
-vbSunday – verwendet den Sonntag als ersten Tag der Woche.
-vbMonday – verwendet Montag als ersten Tag der Woche.
-vbTuesday – verwendet Dienstag als ersten Tag der Woche.
-vbWednesday – verwendet Mittwoch als ersten Tag der Woche.
-vbThursday – verwendet Donnerstag als ersten Tag der Woche.
-vbFriday – verwendet Freitag als ersten Tag der Woche.
-vbSaturday – verwendet Samstag als ersten Tag der Woche.
-vbUseSystemDayOfTheWeek – verwendet den ersten Tag der Woche, der durch die Einstellungen Ihres Systems festgelegt ist.
Der folgende Code zeigt Ihnen, wie Sie die WeekDay-Funktion verwenden können:
Sub VerwendungWeekDayFunktion()
Dim derWochenTag As Integer
derWochenTag = WeekDay("11/20/2019")
Debug.Print derWochenTag
End Sub
Das Ergebnis ist:
VBA – WeekDayName-Funktion
Sie können die WeekdayName-Funktion verwenden, um den Namen eines Wochentags aus einer eingegebenen Wochentagsnummer zu ermitteln.
Die Syntax der WeekDayName-Funktion lautet:
WeekDayName(Wochentag, [Abkürzung], [ErsterTagderWoche]) wobei:
- Wochentag: Ein ganzzahliger Wert zwischen 1 und 7.
- Abkürzung(Optional): Gibt an, ob der Wochentagsname abgekürzt werden soll. Ist der Wert leer, wird der Standardwert False verwendet.
- ErsterTagderWoche(Optional): Eine Konstante, die den Wochentag angibt, den die Funktion als ersten Tag der Woche verwenden soll. Ist der Wert leer, wird der Sonntag als erster Wochentag verwendet. Der erste Tag der Woche kann einem der folgenden Werte entsprechen:
-vbSunday – verwendet den Sonntag als ersten Tag der Woche.
-vbMonday – verwendet Montag als ersten Tag der Woche.
-vbTuesday – verwendet den Dienstag als ersten Tag der Woche.
-vbWednesday – verwendet Mittwoch als ersten Tag der Woche.
-vbThursday – verwendet Donnerstag als ersten Tag der Woche.
-vbFriday – verwendet Freitag als ersten Tag der Woche.
-vbSaturday – verwendet Samstag als ersten Tag der Woche.
-vbUseSystemDayOfTheWeek – verwendet den ersten Tag der Woche, der in den Systemeinstellungen festgelegt ist.
Sub VerwendungWeekDayNameFunktion()
Dim derWochenTagsName As String
derWochenTagsName = WeekDayName(4)
Debug.Print derWochenTagsName
End Sub
Das Ergebnis ist:
VBA – Year-Funktion
Sie können die Year-Funktion verwenden, um das Jahr eines eingegebenen Datums zu ermitteln.
Die Syntax der Year-Funktion lautet:
Year(Datumswert) wobei:
- Datumswert: Das Datum, aus dem Sie das Jahr extrahieren möchten.
Der folgende Code zeigt Ihnen, wie Sie die Year-Funktion verwenden können:
Sub VerwendungYearFunktion()
Dim dasJahr As Integer
dasJahr = Year("11/12/2010")
Debug.Print dasJahr
End Sub
Das Ergebnis ist:
Vergleich von Datumsangaben in VBA
Sie können Datumsangaben mit den Operatoren >, < und = in VBA vergleichen. Der folgende Code zeigt Ihnen, wie Sie zwei Datumsangaben in VBA vergleichen können.
Sub DatenVergleich()
Dim DatumEins As Date
Dim DatumZwei As Date
DatumEins = "10/10/2010"
DatumZwei = "11/11/2010"
If DatumEins > DatumZwei Then
Debug.Print "Datum eins ist das spätere Datum"
ElseIf DatumEins = DatumZwei Then
Debug.Print "Die beiden Daten sind gleich"
Else
Debug.Print "Datum zwei ist das spätere Datum"
End If
End Sub
In diesem Tutorial erfahren Sie mehr über die Formatierung von Datumsangaben als Zeichenketten.