VBA IsDate-funktion

Excel VBA IsDate-funktion

IsDate är VBA-funktionen som testar om det angivna värdet är datumet eller inte. Om det angivna värdet eller referensvärdet för intervallet är datumvärde får vi resultatet som “SANT”, om värdet inte är datumvärde får vi resultatet som “FALSE”. Så resultatet är BOOLEAN-värde, dvs antingen SANT eller FALSKT.

Nedan är syntaxen för IsDate-funktionen.

Uttryck är inget annat än det värde som vi försöker testa om det är datumet eller inte.

Hur använder jag VBA IsDate-funktionen?

Du kan ladda ner denna VBA IsDate Excel-mall här - VBA IsDate Excel-mall

Vi kommer att testa om värdet ”5.01.19” är ett datumvärde eller inte.

För detta först starta Excel-makroförfarandet.

Koda:

 Sub IsDate_Example1 () Avsluta Sub 

Definiera variabeln för att lagra datumvärdet och eftersom värdet kommer att vara datumvärde, tilldela datatypen endast "Datum".

Koda:

 Sub IsDate_Example1 () Dim MyDate as Date End Sub 

Tilldela nu värdet "5.1.19" till variabeln "MyDate".

Koda:

 Sub IsDate_Example1 () Dim MyDate as Date MyDate = "5.1.19" Avsluta sub 

Öppna meddelanderutan i VBA nu

Koda:

 Sub IsDate_Example1 () Dim MyDate as Date MyDate = "5.1.19" MsgBox (End Sub 

I denna meddelandefält kommer vi att testa om det angivna datumvärdet till variabeln “MyDate” är datumet eller inte med hjälp av funktionen “IsDate”. Öppna först “IsDate” -funktionen.

Koda:

 Sub IsDate_Example1 () Dim MyDate as Date MyDate = "5.1.19" MsgBox IsDate (End Sub 

Uttryck är det värde vi testar för att hitta om det är datum eller inte. Eftersom vi redan har lagrat värdet till variabeln "MyDate", ange endast variabelnamnet.

Koda:

 Sub IsDate_Example1 () Dim MyDate as Date MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub 

Ok, kör nu koden och se vad vi får i meddelandefältet.

Wow!!! Resultatet är SANT .

Du måste undra hur det erkände värdet ”5.1.19” som datum.

Anledningen till att den har returnerat resultatet som SANT, för när man tittar på det givna värdet ”5.1.19” är det kortformen för datumet ”05.01.2019” så excel är lysande nog för att känna igen det som datum, så resultatet är sant.

Nu kommer det knepiga, för samma värde som vi kommer att göra är att vi kommer att ändra årets korta form från 19 till 2019.

Koda:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub 

Kör nu koden och se resultatet.

Den här gången har resultatet returnerat som FALSKT eftersom ”dag och månad” del av datumet är i kort form men årsdelen är i full form av ”ÅÅÅÅ” så ISDATE kan inte känna igen att det har ett datum så resultatet är FALSKT.

Titta nu på koden nedan.

Koda:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub 

Jag har nämnt formatet för hela dagen och hela månaden genom att använda 0, låt oss köra koden och se resultatet av IsDate-funktionen.

Den här gången fick vi också resultatet som FALSE .

Ändra nu koden enligt följande.

Koda:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub 

I stället för punkten (.) Som separator har vi angett snedstreck (/) som separator. Kör nu koden och se resultatet.

Den här gången fick vi resultatet som SANT .

Det är anledningen till att jag har sagt till dig i början av artikeln att "Date" är en känslig sak.

Vad jag nu gör är att jag ska slå samman datum och tid tillsammans.

Koda:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

Vad jag har lagt till ovan är tidsdelen av ”15:26:24” framför datumet. Kör nu koden och se resultatet.

Även den här gången fick vi resultatet som SANT eftersom DATUM & TID i Excel är samma saker och lagras som serienummer. Hela numret representerar datumdelen och decimaler representerar tidsdelen.

Saker att komma ihåg här

  • IsDate returnerar det booleska resultatet, dvs. antingen SANT eller FALSKT.
  • IsDate är endast tillgängligt som en VBA-funktion.
  • Endast giltiga formaterade datum behandlas som datumet, annars behandlas det som textvärden och returnerar resultatet som FALSKT.