Цей короткий посібник продемонструє, як перетворити рядок на дату у VBA.
Дати в Excel зберігаються як числа, а потім форматуються, щоб відображатися як дата. Першим днем у світі Excel був 1 січня 1900 р. (За замовчуванням Windows) або 1 січня 1904 р. (За замовчуванням Macintosh) - це означає, що 5 серпня 2022 р. - це день 44413 з 1 січня 1900 р. Перетворення рядка на дату в Excel , спочатку нам потрібно перетворити рядок у число, а потім перетворити це число на дату.
Функція CDate
Ми можемо використовувати функцію CDate у VBA для перетворення рядка на дату.
1234567 | Sub ConvertDate ()Dim dte As SingleDim strD як рядокstrD = "05.10.2020"dte = CDate (strD)MsgBox dteEnd Sub |
Оскільки ми оголосили числову змінну (dte як Single), msgbox поверне число, що відноситься до введеної дати.
Важливо, щоб ми ввели рік, використовуючи всі 4 цифри року (тобто 2022, а не лише 20), інакше повернене число може бути не таким, як очікувалося. Excel не інтерпретує річну частину дати - це контролюється панеллю керування нашого ПК.
Однак, якщо ми оголосимо змінні як змінну дати, вікно повідомлення поверне число, перетворене на дату.
1234567 | Sub ConvertDate ()Затемнити як датуDim strD як рядокstrD = "05.10.2020"dte = CDate (strD)MsgBox dteEnd Sub |
Ми можемо зробити ще один крок далі та відформатувати дату відповідно до того формату дати, який ми хотіли б бачити.
1234567 | Sub ConvertDate ()Dim dte As StringDim strD як рядокstrD = "05.10.2020"dte = Формат (CDate (strD), "dd мммм рррр")MsgBox dteEnd Sub |
У цьому прикладі ми перетворюємо рядок на дату, а потім знову на рядок!
Якби ми повністю опустили рік, Excel вважає поточний рік.