VBA slaat een datum op als het aantal dagen sinds 30 december 1899.
Afbeelding tegoed: Sergii Gnatiuk/iStock/Getty Images
Het vergelijken van datums in Microsoft Visual Basic for Applications is niet anders dan het vergelijken van een ander gegevenstype. De waarden die u vergelijkt, moeten van het type 'Datum' zijn. U kunt de standaard vergelijkingsoperatoren gebruiken: "" voor "groter dan"; ">=" voor "groter dan of gelijk aan"; "=" voor "gelijk aan"; en "<>" voor "niet gelijk aan." U kunt ook twee vergelijkingsoperatoren gebruiken, "Is" en "IsNot".
VBA-datumtype
Het is handig om te onthouden hoe VBA datumwaarden in het geheugen opslaat wanneer u datums vergelijkt. Een datum wordt opgeslagen als een getal met dubbele precisie met drijvende komma, of een Double. Het lange integer-gedeelte is het aantal dagen, positief of negatief, sinds 30 december 1899. Het decimale deel is de hoeveelheid tijd die is verstreken sinds middernacht. Van een datum zonder tijd is het decimale gedeelte ingesteld op nul. Zo wordt 1 mei 1967 opgeslagen als 24593.0. Dit betekent dat wanneer VBA twee datums vergelijkt, het eigenlijk twee getallen vergelijkt die dagen vertegenwoordigen.
Video van de dag
Tekenreeks Vs. Datum
Wanneer u datums in VBA vergelijkt, moet u ervoor zorgen dat de waarden die u vergelijkt van het type "Datum" zijn en geen tekenreeksen zijn. De tekenreeks "05/01/1999" is bijvoorbeeld kleiner dan de tekenreeks "31/12/900" omdat "05" komt voor "12." Converteer een tekenreeks naar een datumtype met behulp van de functie "CDate", bijvoorbeeld "CDate (Tekstvak. Waarde)".
Handige functies
Naast CDate() zijn er nog andere handige functies die u kunt gebruiken bij het vergelijken van datums. De functie "Date()" geeft de datum van vandaag als datumwaarde. De functie "Now()" geeft de datum en tijd van vandaag als datumwaarde. Omdat het gegevenstype Datum ook een tijdcomponent bevat, kunt u alleen het datumgedeelte van een variabele extraheren bij het vergelijken van datums met behulp van de functie "DateValue()", bijvoorbeeld "If submission > DateValue (deadline) Then ..."
Datum Rekenen
Omdat een datum wordt opgeslagen als het aantal dagen sinds 30 december 1899, kunt u datumberekeningen opnemen bij het vergelijken van datums in VBA. Als een ticket bijvoorbeeld drie dagen nadat het is gekocht vervalt, kunt u controleren op een verlopen ticket met een VBA-code, vergelijkbaar met het volgende:
Publieke functie verlopen (aankoop als datum) Als Boolean verlopen = False Als aankoop+3 > Date() Dan verlopen = True End If End Functie