>> Tecnologia elettronica >  >> Casa intelligente >> Vita smart

Confronto date in VBA

Confrontare date in Microsoft Visual Basic for Applications non è diverso dal confrontare qualsiasi altro tipo di dato. I valori da confrontare devono essere di tipo "Date". Puoi usare gli operatori di confronto standard: "<" per "minore di"; "<=" per "minore o uguale a"; ">" per "maggiore di"; ">=" per "maggiore o uguale a"; "=" per "uguale a"; e "<>" per "diverso da". Puoi anche usare "Is" e "IsNot".

Tipo Date in VBA

È utile ricordare come VBA memorizza i valori data in memoria quando li confronti. Una data è memorizzata come numero floating-point a doppia precisione, o Double. La parte intera lunga è il numero di giorni, positivo o negativo, dal 30 dicembre 1899. La parte decimale è il tempo trascorso dalla mezzanotte. Una data senza ora ha la parte decimale a zero. Per esempio, 1 maggio 1967 è memorizzato come 24593,0. Questo significa che quando VBA confronta due date, sta confrontando due numeri che rappresentano giorni.

Stringa vs Data

Quando confronti date in VBA, devi assicurarti che i valori abbiano tipo "Date" e non siano stringhe. Per esempio, la stringa "05/01/1999" è minore di "12/31/1900" perché "05" viene prima di "12". Converti una stringa in tipo data con la funzione "CDate", per esempio "CDate(TextBox.Value)".

Funzioni utili

Oltre a CDate(), ci sono altre funzioni utili quando confronti date. "Date()" fornisce la data odierna come valore Date. "Now()" fornisce data e ora odierna come valore Date. Poiché il tipo Date include anche un componente ora, puoi estrarre solo la parte data di una variabile quando confronti date usando "DateValue()", per esempio "If submission > DateValue(deadline) Then ..."

Aritmetica delle date

Poiché una data è memorizzata come numero di giorni dal 30 dicembre 1899, puoi includere aritmetica delle date quando le confronti in VBA. Per esempio, se un biglietto scade tre giorni dopo l'acquisto, puoi controllare un biglietto scaduto con codice VBA simile a:

Public Function expired(purchase as Date) As Boolean
expired = False
If purchase+3 > Date() Then expired = True
End If
End Function

  1. Confronto tra Tipi di Batterie
  2. Confronto GPS portatili
  3. Confronto tra altoparlanti wireless
  4. Confronto Zune vs iPod
  5. Confronto tra Cavi Coassiali
  6. Confronto tra Verizon FiOS e DirecTV