VBA salvestab kuupäeva päevade arvuna alates 30. detsembrist 1899.
Pildi krediit: Sergii Gnatiuk/iStock/Getty Images
Kuupäevade võrdlemine rakenduses Microsoft Visual Basic for Applications ei erine mis tahes muu andmetüübi võrdlemisest. Võrreldavate väärtuste tüüp peab olema "Kuupäev". Võite kasutada standardseid võrdlusoperaatoreid: "" tähendab "suurem kui"; ">=" "suurem või võrdne"; "=" "võrdne"; ja "<>" tähendab "mitte võrdne." Võite kasutada ka kahte võrdlusoperaatorit "Is" ja "IsNot".
VBA kuupäeva tüüp
Kuupäevade võrdlemisel on kasulik meeles pidada, kuidas VBA kuupäevaväärtused mällu salvestab. Kuupäev salvestatakse kahekordse täpsusega ujukomaarvuna või topeltarvuna. Pikk täisarvuline osa on päevade arv, olgu see positiivne või negatiivne, alates 30. detsembrist 1899. Kümnendosa on aeg, mis on möödunud keskööst. Kellaajata kuupäeva kümnendosa väärtuseks on seatud null. Näiteks 1. mai 1967 on salvestatud kui 24593.0. See tähendab, et kui VBA võrdleb kahte kuupäeva, siis tegelikult võrreldakse kahte arvu, mis tähistavad päevi.
Päeva video
Tähemärgi string vs. Kuupäev
Kui võrdlete kuupäevi VBA-s, peate tagama, et võrreldavatel väärtustel oleks tüüp "Kuupäev" ja need ei oleks märgistringid. Näiteks märgistring "05/01/1999" on väiksem kui märgistring "12/31/1900", kuna "05" tuleb enne "12". Teisendage märgistring kuupäevatüübiks, kasutades funktsiooni "CDate", näiteks "CDate (Tekstikast. Väärtus)".
Abistavad funktsioonid
Lisaks CDate() on ka muid kasulikke funktsioone, mida võite kuupäevade võrdlemisel kasutada. Funktsioon "Kuupäev()" pakub kuupäeva väärtusena tänase kuupäeva. Funktsioon "Now()" pakub kuupäeva väärtusena tänast kuupäeva ja kellaaega. Kuna andmetüüp Kuupäev sisaldab ka ajakomponenti, saate muutujast eraldada ainult kuupäevaosa kui võrrelda kuupäevi funktsiooni "DateValue()" abil, näiteks "If submission > DateValue (tähtaeg) Siis ..."
Kuupäeva aritmeetika
Kuna kuupäev salvestatakse päevade arvuna alates 30. detsembrist 1899, saate VBA-s kuupäevade võrdlemisel kaasata kuupäeva aritmeetika. Näiteks kui pilet aegub kolm päeva pärast selle ostmist, saate kontrollida aegunud piletit VBA koodiga, mis sarnaneb järgmisega:
Avalik funktsioon aegus (ost kui kuupäev) Nagu Boolean aegunud = vale, kui ost+3 > kuupäev() siis aegunud = õige lõpp, kui lõppfunktsioon