VBA shrani datum kot število dni od 30. decembra 1899.
Zasluga slike: Sergii Gnatiuk/iStock/Getty Images
Primerjava datumov v programu Microsoft Visual Basic za aplikacije se ne razlikuje od primerjave katere koli druge vrste podatkov. Vrednosti, ki jih primerjate, morajo biti vrste »Datum«. Uporabite lahko standardne primerjalne operatorje: "" za "večje od"; ">=" za "večje ali enako"; "=" za "enako"; in "<>" za "ni enako." Uporabite lahko tudi dva primerjalna operatorja, "Je" in "Ni".
VBA Vrsta datuma
Ko primerjate datume, si je koristno zapomniti, kako VBA shranjuje datumske vrednosti v pomnilnik. Datum je shranjen kot številka s plavajočo vejico z dvojno natančnostjo ali dvojno. Dolgo celo število je število dni, pozitivnih ali negativnih, od 30. decembra 1899. Decimalni del je čas, ki je pretekel od polnoči. Datum brez časa ima decimalni del nastavljen na nič. Na primer, 1. maj 1967 je shranjen kot 24593.0. To pomeni, da ko VBA primerja dva datuma, dejansko primerja dve številki, ki predstavljata dneve.
Video dneva
Character String Vs. Datum
Ko primerjate datume v VBA, morate zagotoviti, da imajo vrednosti, ki jih primerjate, vrsto »Datum« in niso znakovni nizi. Na primer, niz znakov "05/01/1999" je manjši od niza znakov "12/31/1900", ker "05" je pred "12." Pretvorite niz znakov v vrsto datuma s funkcijo "CDate", na primer "CDate (Besedilno polje. Vrednost)".
Koristne funkcije
Poleg CDate() obstajajo še druge koristne funkcije, ki jih lahko uporabite pri primerjavi datumov. Funkcija "Date()" zagotavlja današnji datum kot vrednost datuma. Funkcija "Now()" zagotavlja današnji datum in čas kot vrednost datuma. Ker podatkovni tip Datum vključuje tudi časovno komponento, lahko ekstrahirate samo del datuma spremenljivke pri primerjavi datumov z uporabo funkcije "DateValue()", na primer "Če predložitev > DatumValue (rok) Nato ..."
Aritmetika datuma
Ker je datum shranjen kot število dni od 30. decembra 1899, lahko vključite datumsko aritmetiko pri primerjavi datumov v VBA. Na primer, če vstopnica poteče tri dni po nakupu, lahko preverite, ali je potekla vozovnica s kodo VBA, podobno kot:
Javna funkcija je potekla (nakup kot datum) Kot je Boolean potekel = False Če nakup+3 > Datum() Nato je potekel = True End, če Končna funkcija