Denna korta handledning visar hur du konverterar en sträng till ett datum i VBA.
Datum i Excel lagras som siffror och formateras sedan för att visas som ett datum. Dag 1 i Excel -världen var 1 januari 1900 (Windows standard) eller 1 januari 1904 (Macintosh standard) - vilket innebär att 5 augusti 2022 är dag 44413 sedan 1 januari 1900. För att konvertera en sträng till ett datum i Excel , måste vi först konvertera strängen till ett tal och sedan konvertera det numret till datumet.
CDate -funktion
Vi kan använda en funktion som heter CDate i VBA för att konvertera en sträng till ett datum.
1234567 | Sub ConvertDate ()Dim dte Som singelDim strD Som strängstrD = "05/10/2020"dte = CDate (strD)MsgBox dteAvsluta Sub |
Eftersom vi har deklarerat en numerisk variabel (dte som singel), kommer msgboxen att returnera det nummer som hänvisar till det angivna datumet.
Det är viktigt att vi anger året med alla fyra av årets siffror (dvs. 2022 och inte bara 20), annars kan antalet som returneras inte vara som förväntat. Excel tolkar inte årsdelen av datumet - detta styrs av kontrollpanelen på vår dator.
Men om vi deklarerar variablerna som en datumvariabel returnerar meddelanderutan det nummer som konverterats till ett datum.
1234567 | Sub ConvertDate ()Dim dte As DateDim strD Som strängstrD = "05/10/2020"dte = CDate (strD)MsgBox dteAvsluta Sub |
Vi kan ta detta ett steg längre och formatera datumet till den typ av datumformat som vi skulle vilja se.
1234567 | Sub ConvertDate ()Dim dte As StringDim strD Som strängstrD = "05/10/2020"dte = Format (CDate (strD), "dd mmmm åååå")MsgBox dteAvsluta Sub |
I det här exemplet konverterar vi strängen till ett datum och sedan tillbaka till en sträng igen!
Om vi skulle utelämna året helt antar Excel det aktuella året.