В этом коротком руководстве будет показано, как преобразовать строку в дату в VBA.
Даты в Excel хранятся в виде чисел, а затем форматируются для отображения в виде даты. Первым днем в мире Excel было 1 января 1900 года (по умолчанию для Windows) или 1 января 1904 года (по умолчанию для Macintosh) - это означает, что 5 августа 2022 года является днем 44413 с 1 января 1900 года. Чтобы преобразовать строку в дату в Excel , нам сначала нужно преобразовать строку в число, а затем преобразовать это число в дату.
Функция CDate
Мы можем использовать функцию CDate в VBA для преобразования строки в дату.
1234567 | Sub ConvertDate ()Dim dte как одиночныйDim strD As StringstrD = "10.05.2020"dte = CDate (strD)MsgBox dteКонец подписки |
Поскольку мы объявили числовую переменную (dte как Single), msgbox вернет число, которое относится к введенной дате.
Важно, чтобы мы вводили год, используя все 4 цифры года (т. Е. 2022, а не только 20), иначе возвращаемое число может не соответствовать ожидаемому. Excel не интерпретирует годовую часть даты - это контролируется Панелью управления нашего ПК.
Однако, если мы объявим переменные как переменную даты, в окне сообщения будет возвращено число, преобразованное в дату.
1234567 | Sub ConvertDate ()Dim dte As DateDim strD As StringstrD = "10.05.2020"dte = CDate (strD)MsgBox dteКонец подписки |
Мы можем сделать еще один шаг и отформатировать дату в соответствии с типом формата даты, который мы хотели бы видеть.
1234567 | Sub ConvertDate ()Dim dte As StringDim strD As StringstrD = "10.05.2020"dte = Format (CDate (strD), «дд мммм гггг»)MsgBox dteКонец подписки |
В этом примере мы преобразуем строку в дату, а затем снова обратно в строку!
Если бы мы полностью опускали год, Excel принимает текущий год.