VBA зберігає дату як кількість днів з 30 грудня 1899 року.
Авторство зображення: Сергій Гнатюк/iStock/Getty Images
Порівняння дат у Microsoft Visual Basic for Applications нічим не відрізняється від порівняння даних будь-якого іншого типу. Значення, які ви порівнюєте, мають бути типу "Дата". Ви можете використовувати стандартні оператори порівняння: «" для "більше ніж"; ">=" для "більше або дорівнює"; "=" для "дорівнює"; і "<>" для "не дорівнює". Ви також можете використовувати два оператори порівняння: «Є» і «Немає».
Тип дати VBA
Корисно пам’ятати, як VBA зберігає значення дати в пам’яті, коли ви порівнюєте дати. Дата зберігається як число з плаваючою комою подвійної точності або подвійне. Довга ціла частина — це кількість днів, позитивних чи від’ємних, з 30 грудня 1899 року. Десяткова частина — це кількість часу, що пройшло з півночі. У даті без часу десяткова частина встановлена на нуль. Наприклад, 1 травня 1967 року зберігається як 24593.0. Це означає, що коли VBA порівнює дві дати, він насправді порівнює два числа, які представляють дні.
Відео дня
Рядок символів проти Дата
Коли ви порівнюєте дати у VBA, ви повинні переконатися, що значення, які ви порівнюєте, мають тип «Дата», а не рядки символів. Наприклад, рядок символів "05/01/1999" менший за рядок символів "12/31/1900", оскільки "05" стоїть перед "12". Перетворіть рядок символів у тип дати за допомогою функції "CDate", наприклад, "CDate (Текстове вікно. Значення)".
Корисні функції
На додаток до CDate(), є інші корисні функції, які ви можете використовувати під час порівняння дат. Функція "Date()" надає сьогоднішню дату як значення дати. Функція "Now()" надає сьогоднішню дату та час як значення дати. Оскільки тип даних Date також містить компонент часу, ви можете витягти лише частину дати зі змінної під час порівняння дат за допомогою функції "DateValue()", наприклад, "Якщо подання > DateValue (кінцевий термін) Тоді ..."
Арифметика дати
Оскільки дата зберігається як кількість днів з 30 грудня 1899 року, ви можете включити арифметику дати під час порівняння дат у VBA. Наприклад, якщо термін дії квитка закінчується через три дні після його придбання, ви можете перевірити наявність простроченого квитка за допомогою коду VBA, подібного до такого:
Термін дії загальнодоступної функції минув (придбати як дату) Оскільки логічне значення минув = False Якщо покупка+3 > Date() Потім минув = True End If End Function