VBA CDATE | Как использовать CDATE в Excel VBA? (с примерами)

Функция CDATE в VBA

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

Синтаксис CDATE

Ниже приведен синтаксис функции CDATE в VBA.

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

CDATE определяет формат даты и времени на компьютере, над которым мы работаем, и преобразует предоставленное значение в тот же тип данных даты. Если вы указываете только день и месяц и игнорируете год, тогда функция CDATE берет системный год, отображается вместе с указанными днем ​​и месяцем.

Мы увидим все больше и больше примеров в разделе ниже.

Как использовать функцию CDATE в Excel VBA?

Примеры функции CDATE в excel vba.

Вы можете скачать этот шаблон VBA CDATE Excel здесь - Шаблон VBA CDATE Excel

Пример # 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 декабря 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.02.2020». Если вы не знакомы с датами в Excel, то вам должно быть интересно, как это произошло.

Например, введите то же число (43889) в одну из ячеек электронной таблицы.

Для этого используйте формат «ДД-ММ-ГГГГ».

Теперь нажмите ОК и посмотрите результат.

Теперь результат изменился с серийного номера на сегодняшний день. Поскольку мы применили формат даты к серийному номеру, он показывает соответствующую дату.

Значит, серийный номер 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.