Usporedba datuma u VBA

stranica kalendara

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