/ / Összehasonlítja a dátumokat és időket az Excel VBA-ban

Adatok és idők összehasonlítása Excel VBA-ban

Ez a példa megtanítja, hogyan kell hasonlítsa össze a dátumokat és időpontokat ban ben Excel VBA. A dátumokat és időket Excel számként tárolják, és számolják a napok számát 1900. január 1. óta. Amit lát, a számformátumtól függ.

1. Adjon meg néhány számot az A oszlopban.

számok

2. Ezek a számok dátumok. Ez egy tökéletes módja annak, hogy megadja a dátumokat anélkül, hogy aggódna a dátumformátumban. Módosítsa a formátumot a dátumra (jobb egérgombbal kattintson az oszlop fejlécére, formázza a cellákat és válassza a Dátum opciót).

Eredmény:

Időpontok

Megjegyzés: A dátumok US formátumban vannak. Hónapok első, második napok. Ez a formátum az ablakok regionális beállításaitól függ.

Helyezzen egy parancsgombot a munkalapra, és adja hozzá a következő kódsorokat:

3. Állítsa be az Integer típusú i változót.

Dim i As Integer

4. Adjon hozzá egy Következő hurokot.

For i = 1 To 5

Next i

5. A Dátum funkció az aktuális dátumot az idő nélkül visszaadja. Adja hozzá a következő kódot a hurokhoz, hogy kijelölje az aktuális dátumot tartalmazó összes cellát (2013/12/22).

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

Eredmény:

Az egyenlő időpontok

6. Adja hozzá a következő kódsorot a hurokhoz, hogy kijelölje az összes dátumot, mint a 04/19/2011.

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

Eredmény:

Korábbi időpontok

7. De mi van az idõkkel, azt halljuk, hogy azt mondja. Ezek a tizedesek. Váltson vissza az Általános formátumra, és változtassa meg a számokat tizedes számokra.

Tizedes számok

8. Most változtassa meg a formátumot a "Date and Time" formátumban.

Dátum és idő formátum

Eredmény:

Dátumok és idők

9. Ha ki szeretné jelölni az aktuális dátumot tartalmazó összes cellát, akkor már nem használhatod a kódsoron az 5-ös számot. Miért ne? Mivel az A oszlopban lévő számok decimális számok. Összehasonlítva a dátummal (egy egész szám) nem adna meg egyezést. (Ez csak akkor adna egy mérkőzést a 12/22/2013 éjfélkor pontosan!) A következő kódsor működik:

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

Magyarázat: egyszerűen használjuk az Int funkciót. Az Int funkció egy számot kerekít le a legközelebbi egész számra. Így kaphatjuk meg a dátumokat az idők nélkül, és hasonlítsuk össze ezeket a dátumokat a Dátummal.

Eredmény:

Dátumok nélküli idők

10. Adja hozzá a következő kódsorozatot, hogy kijelölje az összes idõt tartalmazó cellát reggel.

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

Magyarázat: csak a tizedesjegyekre van szükségünk, ezért levonjuk az egész számot. Délben (félúton) 0.5. A 0,5-nél alacsonyabb decimális értékek a reggeli órák.

Eredmény:

A reggeli órák

Szintén olvasható: