VBA CDATE | Як використовувати CDATE в Excel VBA? (з прикладами)

Функція CDATE у VBA

VBA CDATE - це функція перетворення типу даних, яка перетворює тип даних, який є текстовим або рядковим, у тип даних дати. Коли значення перетворено на тип даних дати, ми можемо пограти з датами.

Синтаксис CDATE

Нижче наведено синтаксис функції CDATE у VBA.

Вираз: Вираз може бути значенням рядка або тексту або змінною, що містить значення, яке потрібно перетворити на тип даних дати.

CDATE визначає формат дати та часу в комп’ютері, над яким ми працюємо, і перетворює надане значення в той самий тип даних дати. Якщо ви вводите лише день і місяць і ігноруєте рік, тоді функція CDATE бере системний рік, показує разом із введеним днем ​​і місяцем.

У наведеному нижче розділі ми побачимо все більше і більше прикладів.

Як використовувати функцію CDATE в Excel VBA?

Приклади функції CDATE в Excel vba.

Завантажити цей шаблон VBA CDATE Excel можна тут - Шаблон Excel VBA CDATE

Приклад №1

Перш ніж я покажу вам приклад CDATE, спочатку перегляньте наведений нижче код.

Код:

 Sub CDATE_Example1 () Dim k As String k = "25-12" MsgBox k End Sub 

У наведеному вище для змінної "k" я призначив значення як "25-12". Коли я виконую цей код, ми побачимо те саме значення у вікні повідомлення у VBA.

Але це можна перетворити на сьогодні за допомогою функції VBA CDATE. Для цього визначте ще одну змінну як Date.

Код:

 Dim k1 як дата 

Для цієї змінної “k1” призначте функцію CDATE та введіть змінну “k”, яка містить рядок “25-12”. А для вікна повідомлення покажіть значення змінної "k1" замість "k".

Код:

k1 = CDate (k)

Тепер запустіть код і перегляньте результат у вікні повідомлення.

Тож результат - «25.12.2019».

Уважно подивіться на вартість, яку ми поставили, ми поставили “25-12”, яку не поставили рік.

Під час написання цієї статті поточним роком у моїй системі був 2019 рік, тому VBA CDATE перетворив на сьогоднішній день значення рядка “25-12” і додав до нього системний 2019 рік. Тож остаточні результати читаються так 25.12.2019, тобто 25 грудня 2019 року.

Приклад №2

Тепер подивіться на наведений нижче код.

Код:

 Sub CDATE_Example2 () Dim k As Variant Dim kResult As Date k = 43889 kResult = CDate (k) MsgBox kResult End Sub 

У наведеному вище коді для змінної "k" я застосував число "43889". Ми всі знаємо, що це серійний номер, але для іншої змінної “KResult” ми перетворили це значення на сьогоднішній день за допомогою функції “CDATE”.

Той самий результат змінної “kResult”, показаний у вікні повідомлення.

Запустіть код і побачите магію функції “CDATE”.

Результат відображається як «28.2.2020», якщо ви не знайомі з датами в Excel, то вам, мабуть, цікаво, як це сталося.

Наприклад, введіть той самий номер (43889) в одну з комірок електронної таблиці.

Для цього застосовуйте формат "ДД-ММ-РРРР".

Тепер натисніть кнопку Ok і перегляньте результат.

Тепер результат змінився із серійного номера на сьогодні. Оскільки ми застосували формат дати над серійним номером, він вказав відповідну дату.

Отже, це означає, що серійний номер 43889 дорівнює даті 28-02-2020.

Отже, у нашому коді VBA функція CDATE виконала те саме, перетворивши значення рядка в тип даних дати.

Приклад №3

Для цього прикладу перегляньте наведений нижче код.

 Sub CDATE_Example3() Dim Value1 Dim Value2 Dim Value3 Value1 = "December 24, 2019" Value2 = #6/25/2018# Value3 = "18:30:48 PM" MsgBox CDate(Value1) MsgBox CDate(Value2) MsgBox CDate(Value3) End Sub 

When we run this code we will get the below results.

So, all the values are converted to the date data type with the CDATE function.

Things to Remember

  • CDATE converts only numbers and string values to the date data type.
  • This is useful when we use it with other functions.
  • If the wrong data type value is supplied then we will get type mismatch error.
  • Since date and time are part of serial number it converts time as well as proper time.