/ / Сравнение на датите и часовете в Excel VBA

Сравнете датите и часовете в Excel VBA

Този пример ви учи как да сравнете датите и часовете в Excel VBA, Датите и часовете се съхраняват като числа в Excel и броят на дните от януари 0, 1900. Това, което виждате, зависи от формата на числата.

1. Въведете някои номера в колона А.

численост

2. Тези номера са дати. Това е идеалният начин да въведете дати, без да се притеснявате за формата на Дата. Променете формата на Дата (щракнете с десния бутон върху заглавието на колоната А, Форматиране на клетки и изберете Дата).

Резултат:

Дати

Забележка: Датите са в US Format. Първи месеци, дни втора. Този тип формат зависи от регионалните ви настройки за Windows.

Поставете командния бутон на работния лист и добавете следните кодови редове:

3. Декларирайте променливата i от тип Integer.

Dim i As Integer

4. Добавете линия For Next.

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.04.2011.

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

Резултат:

Дати по-рано

7. Но какво да кажем за времето, чуваме да казвате. Те са десетичните числа. Превключете обратно в общия формат и променете числата на десетични номера.

Десетични числа

8. Сега променете формата на формат "Дата и час".

Формат на дата и час

Резултат:

Дати и часове

9. Ако искате да маркирате всички клетки, съдържащи текущата дата, вече не можем да използваме кодовата линия на 5. Защо не? Тъй като числата в колона А сега са десетични числа. Сравняването му с Дата (цялото число) няма да даде никакво съвпадение. (Това ще даде съвпадение само на 12/22/2013 точно в полунощ!) Следната кодова линия работи:

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

Обяснение: ние просто използваме функцията Int. Функцията Int закръглява число до най-близкото цяло число. По този начин можем да получим датите без време и да сравним тези дати с Дата.

Резултат:

Дати без време равни

10. Добавете следния код, за да маркирате всички клетки, съдържащи сутрин.

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

Обяснение: имаме нужда само от десетичните числа, затова изваждаме цялото число. По обяд (по средата на деня) се представя 0,5. Десетичните цифри по-ниски от 0,5 са часовете сутрин.

Резултат:

Времената сутрин

Също така се чете: