Поређење датума у ​​ВБА

страница календара

ВБА чува датум као број дана од 30. децембра 1899. године.

Кредит за слику: Сергиј Гнатиук/иСтоцк/Гетти Имагес

Поређење датума у ​​програму Мицрософт Висуал Басиц за апликације се не разликује од поређења било ког другог типа података. Вредности које поредите морају бити типа „Датум“. Можете користити стандардне операторе поређења: "" за "веће од"; ">=" за "веће или једнако"; "=" за "једнако"; и "<>" за "није једнако." Такође можете да користите два оператора поређења, „Ис“ и „ИсНот“.

ВБА Тип датума

Корисно је запамтити како ВБА чува вредности датума у ​​меморији када упоређујете датуме. Датум се чува као број са помичним зарезом двоструке прецизности или дупли. Дуги целобројни део је број дана, позитивних или негативних, од 30. децембра 1899. године. Децимални део је време које је протекло од поноћи. Датум без времена има свој децимални део постављен на нулу. На пример, 1. мај 1967. се чува као 24593.0. То значи да када ВБА упоређује два датума, он заправо упоређује два броја која представљају дане.

Видео дана

Цхарацтер Стринг вс. Датум

Када упоређујете датуме у ВБА, морате осигурати да вредности које упоређујете имају тип „Дате“ и да нису низови знакова. На пример, низ знакова „05/01/1999“ је мањи од низа знакова „12/31/1900“ јер „05“ долази испред „12.“ Конвертујте низ знакова у тип датума помоћу функције "ЦДате", на пример, "ЦДате (Поље за текст. Вредност)".

Корисне функције

Поред ЦДате(), постоје и друге корисне функције које можете користити када упоређујете датуме. Функција „Дате()“ пружа данашњи датум као вредност датума. Функција „Нов()“ пружа данашњи датум и време као вредност датума. Пошто тип података Датум такође укључује компоненту времена, можете издвојити само део датума променљиве када упоређујете датуме помоћу функције „ДатеВалуе()“, на пример, „Ако се поднесе > ДатеВалуе (рок) Затим ..."

Аритметика датума

Пошто се датум чува као број дана од 30. децембра 1899. године, можете укључити аритметику датума када упоређујете датуме у ВБА. На пример, ако карта истиче три дана након што је купљена, можете да проверите да ли је истекла карта помоћу ВБА кода сличног следећем:

Јавна функција је истекла (куповина као датум) Како је Боолеан истекао = Фалсе Ако је куповина+3 > Датум() Затим је истекла = Труе Енд Иф Енд Фунцтион