Excel VBA CDate-funktion

Har du hört talas om den funktion eller kommando som vi kan konvertera någonting till datum och tid? Ja, tillsammans med Date-funktionen har vi CDate-funktion i VBA som gör det. CDate är excels funktion men detta kan också göras i VBA. CDate konverterar allt annat än i standarddataformat. Detta kan användas både för konvertering av tid tillsammans med Date.

Syntax av CDate är den enklaste syntaxen vi någonsin har sett. CDate beaktar endast uttryck som Datum och tid i vilket format som ingång. Nedan är syntaxen för det.

Vi behöver bara mata valfritt antal, datum eller tid i vilket format som vi har och CDate konverterar automatiskt det till standarddatum och tidsformat.

Hur använder jag Excel VBA CDate-funktion?

Vi lär dig hur man använder en VBA CDate-funktion med några exempel i Excel.

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

VBA CDate - Exempel # 1

Vi kommer att ta ett enkelt exempel först. I det här exemplet kommer vi att försöka konvertera en enkel typ av datum till ett standardformat som faktiskt är inbyggt i Excel som standard.

Följ stegen nedan för att använda CDate-funktionen i VBA.

Steg 1: Öppna en modul som är tillgänglig på menyn fliken Infoga som visas nedan.

Steg 2: Skriv nu delproceduren för VBA CDate i valfritt namn som visas nedan. Men det rekommenderas att huvudsakligen skriva namnet på underprocessen.

Koda:

 Sub VBA_CDate () Slut Sub 

Steg 3: Förklara nu en variabel, låt oss säga att det är Input1 som String . Betrakta datatypen som sträng eftersom vi citerar ingången i kombinationen av siffror och alfabet.

Koda:

 Sub VBA_CDate () Dim Input1 Som String End Sub 

Steg 4: Nu kommer vi att förklara en annan variabel med vilken vi kommer att se utgången. Och denna variabel kommer att användas för att se datumen.

Koda:

 Sub VBA_CDate () Dim Input1 Som Sträng Dim FormatDatum Som Datum Slut Sub 

Steg 5: Välj nu alla datum som är i kombinationen av siffror och alfabet och citera det i inverterade kommatecken som visas nedan.

Koda:

 Sub VBA_CDate () Dim Input1 Som Sträng Dim FormatDatum Som Datum Input1 = "1 september 2019" Slut Sub 

Steg 6: För att konvertera inmatningsdatumet till ett standardformat använder vi CDate- funktionen som visas nedan med FormatDate-variabeln som deklarerades ovan. Och använd det värde som är lagrat i variabeln Input1.

Koda:

 Sub VBA_CDate () Dim Input1 Som Sträng Dim FormatDate Som Datum Input1 = "1 september 2019" FormatDate = CDate (Input1) Slut Sub 

Steg 7: Och för att se utgången kommer vi att använda Msgbox för att tilldela den med FormatDate-funktionen Date.

Koda:

 Sub VBA_CDate () Dim Input1 Som Sträng Dim FormatDate Som Datum Input1 = "1 september 2019" FormatDate = CDate (Input1) MsgBox FormatDate Slut Sub 

Steg 8: Kör nu koden genom att trycka på F5-tangenten eller genom att klicka på Spela-knappen. Vi kommer att få det datum som vi har valt 1 september 2019, har nu konverterats till standarddataformat som 1/9/2019 som visas nedan.

Vi kan prova olika flera kombinationer av datum som verkligen finns och se vilken typ av standardutdata vi får.

VBA CDate - Exempel # 2

I det här exemplet ser vi olika typer av datum och tid som finns och vilken typ av output vi skulle få när vi använder VBA CDate. För detta följer du stegen nedan:

Steg 1: Skriv delproceduren för VBA CDate som visas nedan.

Koda:

 Sub VBA_CDate2 () Slut Sub 

Steg 2: Nu kommer vi att förklara 3-4 olika variabler av datatyp Datum. Låt oss förklara den första variabeln som Datum1 och ge den datatypen som Datum som visas nedan.

Koda:

 Sub VBA_CDate2 () Dim Date1 Som Date End Sub 

Steg 3: Tilldela nu valfritt nummer som vi vill konvertera i datumformat. Vi har valt ett slumpmässigt nummer som 12345.

Koda:

 Sub VBA_CDate2 () Dim Date1 Som Date Date1 = "12345" End Sub 

Steg 4: På liknande sätt definiera en annan variabel Date2 som datumtyp Datum som visas nedan.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Steg 5: Nu igen i variabeln Date2, överväg att sätta ett datum i vilket format som helst. Här har vi hållit 12/3/45 som vår datuminmatning.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Steg 6: Vidare förklarar vi igen en annan variabel Date3 som Date.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 Som Date End Sub 

Steg 7: Här tilldelar vi värdet på vilken tid som helst som visas nedan som 12:10 PM i 24 timmars format.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Steg 8: Nu till sist kommer vi att förklara en annan Date4-variabel som Date.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 Som Date End Sub 

Steg 9: Och här ger vi ett decimalt värde som 0, 123 eller så kan du välja vilket värde som helst.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Nu finns det två sätt att se utdata från värden lagrade i olika variabler som deklarerats ovan. MsgBox tillåter oss bara att se alla värden samtidigt men med Debug.print kan vi se alla variabler som matas ut på en gång.

Steg 10: Så här är det bättre om vi väljer Debug.Print som visas nedan. Och på samma rad tilldela alla variabler som börjar från datum 1 till datum 4.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Debug. Skriv ut Date1, Date2, Date3, Date4 End Sub 

Steg 11: Och för att se utgången använder vi omedelbart fönster som visas nedan. För att komma åt detta, gå till fliken Visa och välj Omedelbart fönster som visas nedan.

Steg 12: Kör nu koden genom att trycka på F5-tangenten eller genom att klicka på Spela-knappen. Vi kommer att se, datumdatatyp har gett oss utdatorn men den är inte i standarddataformat.

Steg 13: För att få standarddata ut använder vi CDate här också. Så vi kommer att tilldela CDate för varje datum och tid som vi använde för olika variabler som visas nedan.

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 Som Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Steg 14: Kör nu koden genom att trycka på F5-tangenten eller genom att klicka på Play-knappen.

Vi ser att utgången från både Date och CDate är densamma, men det finns en grundläggande gemensam skillnad mellan dem båda. Och det vill säga, CDate kan konvertera alla typer av nummer till standarddataformat.

Steg 15: Låt oss prova text eller alfabet med CDate och se vad vi får. Så vi har lagt in lite slumpmässig text som abc i variabel Date4 .

Koda:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 Som Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Steg 16: Kör nu koden igen. Vi får en meddelanderuta med ett felmeddelande som Type Mismatch . Detta beror på att CDate inte kan läsa och konvertera text till ett standarddatum och tidsformat.

Fördelar och nackdelar med Excel VBA CDate-funktion

  • Detta kan konvertera valfritt datum och tid till standardformat.
  • VBA CDate tolkar valfritt nummer som Date-värde och konverterar senare det till ett standardformat.
  • Det kan inte tolka och konvertera texten till datumformat.

Saker att komma ihåg

  • CDate kan bara betrakta siffror som inmatning men det numret kan vara i vilket format som helst.
  • Textvärdet kan inte konverteras.
  • Om vi ​​matar in en tid eller ett datum som redan finns i standardformatet kommer det att återge samma värde som output.
  • Datum- och CDate-funktionen fungerar på samma sätt. Med CDate kan vi konvertera både tid och datum.

Rekommenderade artiklar

Detta är en guide till VBA CDate-funktion. Här diskuterar vi hur man använder CDate-funktion i Excel med VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA-datumformat
  2. Excel DATEDIF-funktion
  3. VBA DateSerial
  4. Excel DATEDIF-funktion

Kategori: