VBA pohranjuje datum kao broj dana od 30. prosinca 1899.
Zasluga slike: Sergii Gnatiuk/iStock/Getty Images
Usporedba datuma u Microsoft Visual Basicu za aplikacije ne razlikuje se od usporedbe bilo koje druge vrste podataka. Vrijednosti koje uspoređujete moraju biti tipa "Datum". Možete koristiti standardne operatore usporedbe: "" za "veće od"; ">=" za "veće ili jednako"; "=" za "jednako"; i "<>" za "nije jednako." Također možete koristiti dva operatora usporedbe, "Is" i "IsNot".
VBA Vrsta datuma
Korisno je zapamtiti kako VBA sprema vrijednosti datuma u memoriju kada uspoređujete datume. Datum se pohranjuje kao broj s pomičnim zarezom dvostruke preciznosti ili Double. Dugi cijeli broj je broj dana, pozitivnih ili negativnih, od 30. prosinca 1899. godine. Decimalni dio je količina vremena koja je protekla od ponoći. Datum bez vremena ima svoj decimalni dio postavljen na nulu. Na primjer, 1. svibnja 1967. pohranjen je kao 24593.0. To znači da kada VBA uspoređuje dva datuma, zapravo uspoređuje dva broja koja predstavljaju dane.
Video dana
Character String vs. Datum
Kada uspoređujete datume u VBA, morate osigurati da vrijednosti koje uspoređujete imaju tip "Datum" i da nisu nizovi znakova. Na primjer, niz znakova "05/01/1999" manji je od niza znakova "12/31/1900" jer "05" dolazi prije "12." Pretvorite niz znakova u vrstu datuma pomoću funkcije "CDate", na primjer, "CDate (TextBox. Vrijednost)".
Korisne funkcije
Osim CDate(), postoje i druge korisne funkcije koje možete koristiti kada uspoređujete datume. Funkcija "Date()" pruža današnji datum kao vrijednost datuma. Funkcija "Now()" pruža današnji datum i vrijeme kao vrijednost datuma. Budući da tip podataka Datum također uključuje vremensku komponentu, možete izdvojiti samo datumski dio varijable kada uspoređujete datume pomoću funkcije "Vrijednost datuma()", na primjer, "Ako podnošenje > Vrijednost datuma (rok) Zatim ..."
Aritmetika datuma
Budući da je datum pohranjen kao broj dana od 30. prosinca 1899., možete uključiti aritmetiku datuma kada uspoređujete datume u VBA. Na primjer, ako karta istječe tri dana nakon što je kupljena, možete provjeriti ima li istekle ulaznice pomoću VBA koda sličnog sljedećem:
Javna funkcija je istekla (kupnja kao datum) Kako je Boolean istekao = False Ako kupnja+3 > Datum() Zatim je istekla = True End If End Function