Deze korte zelfstudie laat zien hoe u een tekenreeks naar een datum in VBA kunt converteren.
Datums in Excel worden opgeslagen als getallen en vervolgens opgemaakt om als datum weer te geven. Dag 1 in de wereld van Excel was 1 januari 1900 (Windows standaard) of 1 januari 1904 (Macintosh standaard) - wat betekent dat 5 augustus 2022 dag 44413 is sinds 1 januari 1900. Een string converteren naar een datum in Excel , moeten we eerst de tekenreeks naar een getal converteren en dat getal vervolgens naar de datum converteren.
CDate-functie
We kunnen een functie genaamd CDate in VBA gebruiken om een string naar een datum te converteren.
1234567 | Sub ConvertDate()Dim dte As SingleDim strD As StringstrD = "05/10/2020"dte = CDate(strD)MsgBox dteEinde sub |
Omdat we een numerieke variabele (dte als Single) hebben gedeclareerd, retourneert de msgbox het nummer dat verwijst naar de ingevoerde datum.
Het is belangrijk dat we het jaar invoeren met alle 4 de jaarcijfers (dwz 2022 en niet alleen 20), anders is het geretourneerde getal mogelijk niet zoals verwacht. Excel interpreteert het jaargedeelte van de datum niet - dit wordt beheerd door het Configuratiescherm van onze pc.
Als we de variabelen echter als een datumvariabele declareren, retourneert het berichtvenster het getal dat is geconverteerd naar een datum.
1234567 | Sub ConvertDate()Dim dte als datumDim strD As StringstrD = "05/10/2020"dte = CDate(strD)MsgBox dteEinde sub |
We kunnen nog een stap verder gaan en de datum formatteren naar het type datumformaat dat we zouden willen zien.
1234567 | Sub ConvertDate()Dim dte As StringDim strD As StringstrD = "05/10/2020"dte = Format(CDate(strD), "dd mmmm jjjj")MsgBox dteEinde sub |
In dit voorbeeld converteren we de string naar een datum en dan weer terug naar een string!
Als we het jaartal helemaal zouden weglaten, gaat Excel uit van het huidige jaar.