VBA tekenreeks naar datum converteren

Inhoudsopgave

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.

wave wave wave wave wave