Dieses Beispiel zeigt Ihnen, wie Datum und Uhrzeit in Excel VBA zu vergleichen. Termine und Zeiten werden als Zahlen in Excel gespeichert und zählen die Anzahl der Tage seit dem 0 Januar 1900. Was Sie ist abhängig von der Zahlenformat zu sehen.

  1. Einige Zahlen in Spalte A eingeben

Numbers

  1. Diese Zahlen sind Termine. Dies ist ein perfekter Weg, um einige Tage, ohne sich Gedanken über das Datumsformat eingeben. Ändern Sie das Format auf Datum (Rechtsklick auf die Spalte A-Header, Zellen formatieren und wählen Datum).

Ergebnis:

Dates

Hinweis: Daten sind in US-Format. Monate erste Days Zweite. Diese Art von Format ist abhängig von Ihrer Windows-Ländereinstellungen.

Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Deklarieren Sie die Variable 3. i vom Typ Integer.

Dim i As Integer
  1. Fügen Sie eine Schleife For Next.

For i = 1 To 5

Next i
  1. Die Datumsfunktion gibt das aktuelle Datum ohne die Zeit. Fügen Sie die folgende Codezeile in die Schleife, um alle Zellen zu markieren, um das aktuelle Datum enthält (2020.03.13).

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

Ergebnis:

Dates Equal To

  1. In der Schleife die folgende Codezeile, alle die Daten früher als 2019.04.19 zu markieren.

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

Ergebnis:

Dates Earlier Than

  1. Aber was mal, wir hören Sie sagen. Sie sind die Dezimalstellen. Wechseln Sie zurück zu General Format und ändern Sie die Zahlen Dezimalzahlen.

Decimal Numbers

  1. Nun das Format ‚Datum und Uhrzeit‘ Format ändern.

Date and Time Format

Ergebnis:

Dates and Times

  1. Wenn Sie alle Zellen markieren, um das aktuelle Datum enthalten, können wir nicht die Codezeile in 5 mehr verwenden. Warum nicht? Da die Zahlen in Spalte A sind jetzt Dezimalzahlen. Vergleicht man es mit Datum (eine ganze Zahl) würde keine Übereinstimmung geben. (Es wäre nur ein Spiel mit 2020.03.13 um Mitternacht geben genau!) Die folgende Codezeile funktioniert:

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

Erläuterung: wir einfach die Funktion Int verwenden. Die Int-Funktion rundet eine Zahl auf die nächste ganze Zahl. Auf diese Weise können wir die Daten ohne die Zeiten erhalten und diese Daten mit Datum vergleichen.

Ergebnis:

Dates Without Times Equal To

  1. Fügen Sie den folgenden Code-Zeile alle Zellen am Morgen enthalten Zeiten hervorzuheben.

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

Erläuterung: Wir brauchen nur die Dezimalzahlen so also wir den ganzzahligen Teil subtrahieren. Mittag (auf halbem Weg durch den Tag) als 0,5 dargestellt.

Dezimalzahlen von weniger als 0,5 die Zeiten am Morgen sind.

Ergebnis:

Times in the Morning