Ten krótki samouczek pokaże, jak przekonwertować ciąg na datę w VBA.
Daty w programie Excel są przechowywane jako liczby, a następnie formatowane tak, aby były wyświetlane jako data. Dzień 1 w świecie Excela to 1 stycznia 1900 (domyślny Windows) lub 1 stycznia 1904 (domyślny Macintosh) - co oznacza, że 5 sierpnia 2022 to dzień 44413 od 1 stycznia 1900. Aby przekonwertować ciąg na datę w Excelu , najpierw musimy przekonwertować ciąg na liczbę, a następnie przekonwertować tę liczbę na datę.
Funkcja CDate
Możemy użyć funkcji o nazwie CDate w VBA, aby przekonwertować ciąg na datę.
1234567 | SubData konwersji()Dim dte As SingleDim strD jako ciągstrD = "05/10/2020"dte = CDate(strD)MsgBox dteNapis końcowy |
Ponieważ zadeklarowaliśmy zmienną liczbową (dte jako Single), msgbox zwróci liczbę odpowiadającą wprowadzonej dacie.
Ważne jest, aby wprowadzić rok za pomocą wszystkich 4 cyfr roku (tj. 2022, a nie tylko 20), w przeciwnym razie zwrócona liczba może nie być taka, jak oczekiwano. Excel nie interpretuje części daty dotyczącej roku - jest to kontrolowane przez Panel sterowania naszego komputera.
Jeśli jednak zadeklarujemy zmienne jako zmienną daty, okno komunikatu zwróci liczbę przekonwertowaną na datę.
1234567 | SubData konwersji()Dim dte As DateDim strD jako ciągstrD = "05/10/2020"dte = CDate(strD)MsgBox dteNapis końcowy |
Możemy pójść o krok dalej i sformatować datę do typu formatu daty, który chcielibyśmy zobaczyć.
1234567 | SubData konwersji()Dim dte As StringDim strD jako ciągstrD = "05/10/2020"dte = Format(CDate(strD), "dd mmmm rrrr")MsgBox dteNapis końcowy |
W tym przykładzie konwertujemy ciąg na datę, a następnie z powrotem na ciąg!
Gdybyśmy mieli całkowicie pominąć rok, Excel zakłada rok bieżący.