Sammenligning af datoer i Microsoft Visual Basic til applikationer er ikke anderledes end at sammenligne nogen anden datatype. De værdier, du sammenligner, skal være af typen "Dato". Du kan bruge standard sammenligningsoperatører: "<" til "mindre end"; "<=" for "mindre end eller lig med"; ">" for "større end"; "> =" for "større end eller lig med"; "=" for "lig med"; og "<>" for "ikke lig med." Du kan også bruge to sammenligningsoperatører, "Er" og "IsNot."

kalenderside

VBA Dato Type

Det er nyttigt at huske, hvordan VBA gemmer datoværdier i hukommelsen, når du sammenligner datoer. En dato gemmes som et dobbeltpræcisions flydende punktnummer eller en dobbelt. Den lange heltaldel er antallet af dage, positive eller negative, siden 30. december 1899. Decimaldelen er den tid, der er gået siden midnat. En dato uden tid har dens decimaldel sat til nul. For eksempel gemmes 1. maj 1967 som 24593.0. Dette betyder, at når VBA sammenligner to datoer, er det faktisk at sammenligne to tal, der repræsenterer dage.

Karakterstreng Vs. Dato

Når du sammenligner datoer i VBA, skal du sikre dig, at de værdier, du sammenligner, har en "Dato" -type og ikke er tegnstrenge. For eksempel er tegnsnoren "05/01/1999" mindre end tegnsnoren "12/31/1900", fordi "05" kommer før "12." Konverter en karakterstreng til en datatype ved hjælp af funktionen "CDate", for eksempel "CDate (TextBox.Value)".

Nyttige funktioner

Ud over CDate () er der andre nyttige funktioner, du muligvis bruger, når du sammenligner datoer. Funktionen "Dato ()" giver dagens dato som en datoværdi. Funktionen "Nu ()" giver dagens dato og klokkeslæt som en datoværdi. Da datatypen også inkluderer en tidskomponent, kan du kun udpakke datodelen af ​​en variabel, når man sammenligner datoer ved hjælp af funktionen "DateValue ()", f.eks. "Hvis indsendelse> DateValue (deadline) Så ..."

Dato aritmetisk

Da en dato gemmes som antallet af dage siden 30. december 1899, kan du inkludere dato aritmetik, når man sammenligner datoer i VBA. Hvis en billet f.eks. Udløber tre dage efter, at den blev købt, kan du kontrollere, om en udløbet billet med VBA-kode svarer til følgende:

Offentlig funktion udløbet (køb som dato) Da boolsk udløb = Falsk Hvis køb + 3> Dato () udløb derefter = Sand slut hvis funktion