/ / Daten und Zeiten in Excel VBA vergleichen

Vergleichen Sie Datum und Uhrzeit in Excel VBA

In diesem Beispiel lernen Sie, wie Vergleichen Sie Datum und Uhrzeit im Excel VBA. Datum und Uhrzeit werden als Zahlen in Excel gespeichert und zählen die Anzahl der Tage seit Januar 0, 1900. Was Sie sehen, hängt vom Zahlenformat ab.

1. Geben Sie einige Zahlen in Spalte A ein.

Zahlen

2. Diese Zahlen sind Daten. Dies ist eine perfekte Möglichkeit, um einige Daten einzugeben, ohne sich um das Datumsformat kümmern zu müssen. Ändern Sie das Format in Datum (Klicken Sie mit der rechten Maustaste auf die Spalte A, formatieren Sie Zellen und wählen Sie Datum).

Ergebnis:

Termine

Hinweis: Datumsangaben sind im US-Format. Monate zuerst, Tage zweit. Diese Art von Format hängt von Ihren regionalen Windows-Einstellungen ab.

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

3. Deklarieren Sie die Variable i vom Typ Integer.

Dim i As Integer

4. Fügen Sie eine For Next-Schleife hinzu.

For i = 1 To 5

Next i

5. Die Date-Funktion gibt das aktuelle Datum ohne Uhrzeit zurück. Fügen Sie der Schleife die folgende Codezeile hinzu, um alle Zellen hervorzuheben, die das aktuelle Datum (12/22/2013) enthalten.

If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed

Ergebnis:

Termine gleich

6. Fügen Sie der Schleife die folgende Codezeile hinzu, um alle Daten vor dem 19.04.2011 hervorzuheben.

If Cells(i, 1).Value < DateValue("April 19, 2011") Then Cells(i, 1).Font.Color = vbRed

Ergebnis:

Termine früher als

7. Aber was ist mit Zeiten, wir hören Sie sagen. Sie sind die Dezimalzahlen. Wechseln Sie zurück in das allgemeine Format und ändern Sie die Zahlen in Dezimalzahlen.

Dezimal Zahlen

8. Ändern Sie nun das Format in das Format "Datum und Uhrzeit".

Datums- und Uhrzeitformat

Ergebnis:

Daten und Zeiten

9. Wenn Sie alle Zellen markieren möchten, die das aktuelle Datum enthalten, können wir die Codezeile nicht mehr bei 5 verwenden. Warum nicht? Weil die Zahlen in Spalte A jetzt Dezimalzahlen sind. Vergleichen Sie es mit Datum (eine ganze Zahl) würde keine Übereinstimmung geben. (Es würde nur ein Match mit 12/22/2013 um Mitternacht genau geben!) Die folgende Codezeile funktioniert:

If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed

Erklärung: Wir benutzen einfach die Int-Funktion. Die Int-Funktion rundet eine Zahl auf die nächste ganze Zahl ab. Auf diese Weise können wir die Daten ohne die Zeiten abrufen und diese Daten mit Datum vergleichen.

Ergebnis:

Termine ohne Zeiten gleich

10. Fügen Sie die folgende Codezeile hinzu, um alle Zellen hervorzuheben, die morgens Zeit enthalten.

If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed

Erklärung: Wir brauchen nur die Dezimalzahlen, deshalb subtrahieren wir den ganzzahligen Teil. Mittag (zur Hälfte des Tages) wird als 0,5 dargestellt. Dezimalzahlen kleiner als 0,5 sind die Zeiten am Morgen.

Ergebnis:

Zeiten am Morgen

Lesen Sie auch: