/ / Упоређивање датума и времена у програму Екцел ВБА

Упоредите датум и време у Екцелу ВБА

Овај пример вас учи како да упоредите датуме и времена ин Екцел ВБА. Датуми и времена се чувају као бројеви у Екцелу и рачунају број дана од 1. јануара 1900. Оно што видите зависи од формата броја.

1. Унесите колоне у колону А.

Бројеви

2. Ови бројеви су датуми. Ово је савршен начин уноса неких датума без бриге о формату датума. Промените формат на Датум (десни клик на колону А заглавље, Формат ћелије и изаберите Датум).

Резултат:

Датуми

Напомена: Датуми су у америчком формату. Први месеци, Други дан. Ова врста формата зависи од регионалних подешавања вашег прозора.

Поставите командно дугме на свој радни лист и додајте следеће линије кода:

3. Декларишите варијаблу и од типа Интегер.

Dim i As Integer

4. Додајте наредну петљу.

For i = 1 To 5

Next i

5. Функција Дате враћа тренутни датум без времена. Додајте сљедећу линију кода у петљу да бисте означили све ћелије које садрже тренутни датум (12/22/2013).

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

Резултат:

Датес Екуал То

6. Додајте следећу линију кода у петљу, како бисте означили све датуме раније од 19.4.2011.

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

Резултат:

Дати раније него тан

7. Али шта је са временом, чујемо како кажете. Они су децимали. Вратите се у Општи формат и промените бројеве на децималне бројеве.

Децимални бројеви

8. Сада промените формат у формат "Датум и време".

Формат датума и времена

Резултат:

Датес анд Тимес

9. Ако желите истакнути све ћелије које садрже тренутни датум, више не можемо користити линију кода у 5. Што да не? Пошто су бројеви у колони А сада децимални бројеви. Упоређивање са датумом (цијели број) не би дало никакав меч. (То би само дало утакмицу са 22.12.2013. У поноћ точно!) Следећа линија линија ради:

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

Објашњење: једноставно користимо Инт функцију. Функција Инт окружује број до најближег целог броја. На овај начин можемо добити датуме без времена и упоређивати ове датуме са датумом.

Резултат:

Датес Витхоут Тимес Екуал То

10. Додајте следећу линију кода да бисте означили све ћелије које садрже времена ујутро.

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

Објашњење: потребни су само децимали, тако да одузимамо целобројни део. Ноћ (на пола дана) је представљена као 0,5. Децимали мањи од 0,5 су ујутру.

Резултат:

Времена ујутру

Такође прочитајте: