Päivämäärän vertailu VBA: ssa

kalenterin sivu

VBA tallentaa päivämäärän päivien lukumääränä 30. joulukuuta 1899 lähtien.

Kuvan luotto: Sergii Gnatiuk/iStock/Getty Images

Päivämäärien vertailu Microsoft Visual Basic for Applicationsissa ei eroa minkään muun tietotyypin vertaamisesta. Vertailevien arvojen on oltava tyyppiä "Päiväys". Voit käyttää tavallisia vertailuoperaattoreita: "" tarkoittaa "suurempaa kuin"; ">=" "suurempi tai yhtä suuri"; "=" "saa"; ja "<>" tarkoittaa "ei yhtä suuri." Voit myös käyttää kahta vertailuoperaattoria, "Is" ja "IsNot".

VBA-päivämäärätyyppi

On hyödyllistä muistaa, kuinka VBA tallentaa päivämääräarvot muistiin, kun vertaat päivämääriä. Päivämäärä tallennetaan kaksinkertaisena tarkkuuden liukulukuna tai tuplauksena. Pitkä kokonaislukuosa on positiivisten tai negatiivisten päivien lukumäärä 30. joulukuuta 1899 lähtien. Desimaaliosa on aika, joka on kulunut keskiyöstä. Päivämäärän, jossa ei ole aikaa, desimaaliosan arvo on nolla. Esimerkiksi 1. toukokuuta 1967 tallennetaan nimellä 24593.0. Tämä tarkoittaa, että kun VBA vertaa kahta päivämäärää, se itse asiassa vertaa kahta numeroa, jotka edustavat päiviä.

Päivän video

Merkkijono vs. Päivämäärä

Kun vertaat päivämääriä VBA: ssa, sinun on varmistettava, että vertailemillasi arvoilla on "Päivämäärä"-tyyppi eivätkä ne ole merkkijonoja. Esimerkiksi merkkijono "05/01/1999" on pienempi kuin merkkijono "31/12/1900", koska "05" tulee ennen "12". Muunna merkkijono päivämäärätyypiksi "CDate"-funktiolla, esimerkiksi "CDate (Tekstilaatikko. Arvo)".

Hyödyllisiä toimintoja

CDate():n lisäksi on muita hyödyllisiä toimintoja, joita voit käyttää päivämäärien vertailussa. "Päivämäärä()"-funktio tarjoaa tämän päivän päivämäärän Päivämäärä-arvona. "Now()"-funktio tarjoaa tämän päivän päivämäärän ja kellonajan Päivämäärä-arvona. Koska Päivämäärä-tietotyyppi sisältää myös aikakomponentin, voit poimia vain muuttujan päivämääräosan kun verrataan päivämääriä käyttämällä "DateValue()"-funktiota, esimerkiksi "Jos lähetys > Päivämäärä (määräaika) Sitten ..."

Päivämääräaritmetiikka

Koska päivämäärä on tallennettu päivien lukumääränä joulukuun 30. päivästä 1899 lähtien, voit sisällyttää päivämääräaritmeettisen arvon vertaillessasi päivämääriä VBA: ssa. Jos lippu esimerkiksi vanhenee kolme päivää sen ostamisen jälkeen, voit tarkistaa vanhentuneen lipun VBA-koodilla, joka on seuraavanlainen:

Julkinen toiminto vanhentunut (ostopäivämääränä) Boolen vanhentuneena = Epätosi, jos osto+3 > Päivämäärä() Sitten vanhentunut = Todellinen loppu, jos lopetustoiminto