Comparație de date în VBA

pagina de calendar

VBA stochează o dată ca număr de zile de la 30 decembrie 1899.

Credit imagine: Sergii Gnatiuk/iStock/Getty Images

Compararea datelor în Microsoft Visual Basic pentru aplicații nu este diferită de compararea oricărui alt tip de date. Valorile pe care le comparați trebuie să fie de tip „Dată”. Puteți utiliza operatorii standard de comparare: „” pentru „mai mare decât”; „>=" pentru „mai mare sau egal cu”; „=" pentru „egal cu”; și „<>” pentru „nu este egal cu”. De asemenea, puteți utiliza doi operatori de comparație, „Is” și „IsNot”.

Tip de dată VBA

Este util să vă amintiți cum VBA stochează valorile date în memorie atunci când comparați datele. O dată este stocată ca un număr cu virgulă mobilă cu precizie dublă sau ca un număr dublu. Porțiunea întregă lungă este numărul de zile, pozitive sau negative, începând cu 30 decembrie 1899. Porțiunea zecimală este perioada de timp care a trecut de la miezul nopții. O dată fără oră are porțiunea zecimală setată la zero. De exemplu, 1 mai 1967 este stocat ca 24593.0. Aceasta înseamnă că atunci când VBA compară două date, de fapt compară două numere care reprezintă zile.

Videoclipul zilei

Șirul de caractere vs. Data

Când comparați datele în VBA, trebuie să vă asigurați că valorile pe care le comparați au tipul „Dată” și nu sunt șiruri de caractere. De exemplu, șirul de caractere „05/01/1999” este mai mic decât șirul de caractere „12/31/1900” deoarece „05” vine înainte de „12”. Convertiți un șir de caractere într-un tip de dată utilizând funcția „CDate”, de exemplu, „CDate (Casetă de text. Valoare)".

Funcții utile

Pe lângă CDate(), există și alte funcții utile pe care le puteți utiliza atunci când comparați datele. Funcția „Date()” furnizează data de astăzi ca valoare Date. Funcția „Now()” furnizează data și ora de astăzi ca valoare Date. Deoarece tipul de date Date include și o componentă de timp, puteți extrage doar porțiunea dată a unei variabile atunci când comparați datele utilizând funcția „DateValue()”, de exemplu, „Dacă trimitere > DateValue (termen limită) Atunci ..."

Aritmetica datei

Deoarece o dată este stocată ca număr de zile de la 30 decembrie 1899, puteți include aritmetica datei atunci când comparați datele în VBA. De exemplu, dacă un bilet expiră la trei zile după ce a fost achiziționat, puteți verifica dacă există un bilet expirat cu cod VBA similar cu următorul:

Funcția publică a expirat (cumpărare ca dată) Ca boolean a expirat = Fals Dacă achiziția+3 > Data () Apoi a expirat = Adevărat Sfârșit dacă Funcția de sfârșit