Datumu salīdzinājums VBA

kalendāra lapa

VBA saglabā datumu kā dienu skaitu kopš 1899. gada 30. decembra.

Attēla kredīts: Sergii Gnatiuk/iStock/Getty Images

Datumu salīdzināšana programmā Microsoft Visual Basic for Applications neatšķiras no jebkura cita datu veida salīdzināšanas. Salīdzināmajām vērtībām ir jābūt veidam “Datums”. Varat izmantot standarta salīdzināšanas operatorus: "" apzīmē "lielāks par"; ">=" "lielāks par vai vienāds ar"; "=" vienāds ar"; un "<>" nozīmē "nav vienāds ar". Varat arī izmantot divus salīdzināšanas operatorus "Is" un "IsNot".

VBA datuma veids

Salīdzinot datumus, ir noderīgi atcerēties, kā VBA saglabā datuma vērtības atmiņā. Datums tiek saglabāts kā dubultas precizitātes peldošā komata skaitlis vai dubults. Garā veselā skaitļa daļa ir dienu skaits, pozitīvs vai negatīvs, kopš 1899. gada 30. decembra. Decimāldaļa ir laiks, kas pagājis kopš pusnakts. Datumam bez laika decimāldaļa ir iestatīta uz nulli. Piemēram, 1967. gada 1. maijs tiek saglabāts kā 24593.0. Tas nozīmē, ka, VBA salīdzinot divus datumus, faktiski tiek salīdzināti divi skaitļi, kas apzīmē dienas.

Dienas video

Rakstzīmju virkne vs. Datums

Salīdzinot datumus VBA, jums ir jānodrošina, lai salīdzināmajām vērtībām būtu veids "Datums" un tās nav rakstzīmju virknes. Piemēram, rakstzīmju virkne "05/01/1999" ir mazāka par rakstzīmju virkni "12/31/1900", jo "05" nāk pirms "12." Konvertējiet rakstzīmju virkni uz datuma tipu, izmantojot funkciju "CDate", piemēram, "CDate (Tekstlodziņš. Vērtība)".

Noderīgas funkcijas

Papildus CDate() ir arī citas noderīgas funkcijas, kuras varat izmantot, salīdzinot datumus. Funkcija "Datums()" nodrošina šodienas datumu kā datuma vērtību. Funkcija "Now()" nodrošina šodienas datumu un laiku kā datuma vērtību. Tā kā datu tips Datums ietver arī laika komponentu, varat iegūt tikai mainīgā datuma daļu salīdzinot datumus, izmantojot funkciju "DateValue()", piemēram, "If submission > DateValue (termiņš) Tad ..."

Datuma aritmētika

Tā kā datums tiek saglabāts kā dienu skaits kopš 1899. gada 30. decembra, varat iekļaut datuma aritmētiku, salīdzinot datumus VBA. Piemēram, ja biļetes derīguma termiņš beidzas trīs dienas pēc tās iegādes, varat pārbaudīt biļetes derīguma termiņu ar VBA kodu, kas ir līdzīgs šim:

Publiskās funkcijas derīguma termiņš beidzies (pirkuma datums) Kā Būla vērtība ir beidzies = nepatiess, ja pirkums+3 > datums() Tad beidzās = patiesa beigas, ja beigu funkcija