VBA CDATE-functie

CDATE-functie in VBA

VBA CDATE is een datatype-conversiefunctie die een datatype dat ofwel tekst of een string is, omzet naar een datatype. Zodra de waarde is geconverteerd naar het datatype van de datum, kunnen we spelen met date-dingen.

Syntaxis van CDATE

Hieronder staat de syntaxis van de CDATE-functie in VBA.

Expressie: Expressie kan een tekenreeks- of tekstwaarde zijn of een variabele die een waarde bevat die moet worden geconverteerd naar het datatype datum.

CDATE identificeert het datum- en tijdformaat op de computer waaraan we werken en converteert de opgegeven waarde naar hetzelfde datatype voor datum. Als u alleen dag en maand opgeeft en het jaar negeert, neemt de CDATE-functie het jaar van het systeem, toont samen met de geleverde dag en maand.

In het onderstaande gedeelte zullen we steeds meer voorbeelden zien.

Hoe de CDATE-functie in Excel VBA te gebruiken?

Voorbeelden van CDATE-functie in Excel vba.

U kunt deze VBA CDATE Excel-sjabloon hier downloaden - VBA CDATE Excel-sjabloon

Voorbeeld 1

Voordat ik je het voorbeeld van CDATE laat zien, bekijk eerst de onderstaande code.

Code:

 Sub CDATE_Example1 () Dim k As String k = "25-12" MsgBox k End Sub 

In het bovenstaande voor de variabele "k", heb ik de waarde toegewezen als "25-12". Wanneer ik deze code uitvoer, zien we dezelfde waarde in het berichtvenster in VBA.

Maar dit kan tot op heden worden geconverteerd met behulp van de VBA CDATE-functie. Definieer hiervoor nog een variabele als Datum.

Code:

 Dim k1 als datum 

Wijs voor deze variabele “k1” de CDATE-functie toe en voer de variabele “k” in die de string “25-12” bevat. En toon voor het berichtvenster de variabele waarde van "k1" in plaats van "k".

Code:

k1 = CDate (k)

Voer nu de code uit en bekijk het resultaat in een berichtvenster.

Het resultaat is dus “12/25/2019”.

Kijk goed naar de waarde die we hebben geleverd, we hebben “25-12” geleverd die we jaar niet hebben geleverd.

Tijdens het schrijven van dit artikel was het huidige jaar in mijn systeem 2019, dus VBA CDATE heeft de stringwaarde "25-12" tot nu toe geconverteerd en het systeemjaar 2019 eraan toegevoegd. Dus de definitieve resultaten luiden als volgt: 25/12/2019, dwz 25 december 2019.

Voorbeeld # 2

Kijk nu naar de onderstaande code.

Code:

 Sub CDATE_Example2 () Dim k As Variant Dim kResult As Date k = 43889 kResult = CDate (k) MsgBox kResult End Sub 

In de bovenstaande code voor de variabele “k” heb ik het nummer “43889” toegepast. We weten allemaal dat dit een serienummer is, maar voor een andere variabele "KResult" hebben we deze waarde tot op heden geconverteerd met behulp van de functie "CDATE".

Hetzelfde resultaat van variabele “kResult” getoond in het berichtvenster.

Voer de code uit en zie de magie van de functie "CDATE".

Het toont het resultaat als “28-2-2020”. Als u niet bekend bent met datums in Excel, moet u zich afvragen hoe dit is gebeurd.

Typ bijvoorbeeld hetzelfde nummer (43889) in een van de cellen in de spreadsheet.

Pas hiervoor het formaat toe als “DD-MM-JJJJ”.

Klik nu op Ok en zie het resultaat.

Nu is het resultaat veranderd van een serienummer tot nu. Omdat we datumnotatie hebben toegepast boven het serienummer, is de respectieve datum weergegeven.

Dit betekent dus dat het serienummer 43889 gelijk is aan de datum 28-02-2020.

Dus in onze VBA-code heeft de CDATE-functie hetzelfde uitgevoerd door de tekenreekswaarde naar een datumgegevenstype te converteren.

Voorbeeld # 3

Kijk voor dit voorbeeld naar de onderstaande code.

 Sub CDATE_Example3 () Dim Value1 Dim Value2 Dim Value3 Value1 = "24 december 2019" Value2 = # 6/25/2018 # Value3 = "18:30:48 PM" MsgBox CDate (Value1) MsgBox CDate (Value2) MsgBox CDate ( Waarde3) End Sub 

Wanneer we deze code uitvoeren, krijgen we de onderstaande resultaten.

Alle waarden worden dus geconverteerd naar het datatype datum met de functie CDATE.

Dingen om te onthouden

  • CDATE converteert alleen getallen en tekenreekswaarden naar het datatype datum.
  • Dit is handig als we het met andere functies gebruiken.
  • Als de verkeerde datatype-waarde wordt opgegeven, krijgen we een typefout.
  • Aangezien datum en tijd deel uitmaken van het serienummer, worden zowel de tijd als de juiste tijd geconverteerd.