Сравнете датите и часовете в Excel VBA
Този пример ви учи как да сравнете датите и часовете в Excel VBA, Датите и часовете се съхраняват като числа в Excel и броят на дните от януари 0, 1900. Това, което виждате, зависи от формата на числата.
1. Въведете някои номера в колона А.
2. Тези номера са дати. Това е идеалният начин да въведете дати, без да се притеснявате за формата на Дата. Променете формата на Дата (щракнете с десния бутон върху заглавието на колоната А, Форматиране на клетки и изберете Дата).
Резултат:
Забележка: Датите са в US Format. Първи месеци, дни втора. Този тип формат зависи от регионалните ви настройки за Windows.
Поставете командния бутон на работния лист и добавете следните кодови редове:
3. Декларирайте променливата i от тип Integer.
4. Добавете линия For Next.
Next i
5. Функцията Дата връща текущата дата без време. Добавете следния кодов ред към цикъла, за да маркирате всички клетки, съдържащи текущата дата (12/22/2013).
Резултат:
6. Добавете следния кодов ред към цикъла, за да маркирате всички дати, по-рано от 19.04.2011.
Резултат:
7. Но какво да кажем за времето, чуваме да казвате. Те са десетичните числа. Превключете обратно в общия формат и променете числата на десетични номера.
8. Сега променете формата на формат "Дата и час".
Резултат:
9. Ако искате да маркирате всички клетки, съдържащи текущата дата, вече не можем да използваме кодовата линия на 5. Защо не? Тъй като числата в колона А сега са десетични числа. Сравняването му с Дата (цялото число) няма да даде никакво съвпадение. (Това ще даде съвпадение само на 12/22/2013 точно в полунощ!) Следната кодова линия работи:
Обяснение: ние просто използваме функцията Int. Функцията Int закръглява число до най-близкото цяло число. По този начин можем да получим датите без време и да сравним тези дати с Дата.
Резултат:
10. Добавете следния код, за да маркирате всички клетки, съдържащи сутрин.
Обяснение: имаме нужда само от десетичните числа, затова изваждаме цялото число. По обяд (по средата на деня) се представя 0,5. Десетичните цифри по-ниски от 0,5 са часовете сутрин.
Резултат: