Функция Excel VBA CDate

Вы слышали о функции или команде, с помощью которых мы можем преобразовать что-либо в дату и время? Да, наряду с функцией Date у нас есть функция CDate в VBA, которая делает это. CDate является функцией Excel, но это также может быть сделано в VBA. CDate преобразует все, кроме стандартного формата даты. Это может быть использовано для преобразования времени вместе с датой.

Синтаксис CDate - самый простой синтаксис, который мы когда-либо видели. CDate рассматривает только такие выражения, как дата и время в любом формате, в качестве входных данных. Ниже приведен синтаксис этого.

Нам просто нужно указать любое число, дату или время в любом имеющемся у нас формате, и CDate автоматически преобразует их в стандартный формат даты и времени.

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

Мы научимся использовать функцию VBA CDate на нескольких примерах в Excel.

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

VBA CDate - Пример № 1

Сначала мы возьмем простой пример. В этом примере мы попытаемся преобразовать один простой тип даты в стандартный формат, который по умолчанию встроен в Excel.

Выполните следующие шаги, чтобы использовать функцию CDate в VBA.

Шаг 1: Откройте модуль, который доступен на вкладке меню « Вставка », как показано ниже.

Шаг 2: Теперь напишите подпроцедуру VBA CDate под любым именем, как показано ниже. Но в названии выполняемой работы рекомендуется в основном указывать название подпроцедуры.

Код:

 Sub VBA_CDate () End Sub 

Шаг 3: Теперь объявите переменную, скажем, это Input1 как String . Рассматривая тип данных как String, потому что мы будем заключать в кавычки входные данные в комбинации чисел и алфавитов.

Код:

 Sub VBA_CDate () Dim Input1 As String End Sub 

Шаг 4: Теперь мы объявим еще одну переменную, по которой увидим вывод. И эта переменная будет использоваться для просмотра дат.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Дата Конец Sub 

Шаг 5: Теперь выберите любую дату, которая находится в комбинации цифр и алфавитов, и заключите ее в кавычки, как показано ниже.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 сентября 2019" Конец Sub 

Шаг 6: Чтобы преобразовать введенную дату в стандартный формат, мы будем использовать функцию CDate, как показано ниже, с переменной FormatDate, которая была объявлена ​​выше. И используйте значение, хранящееся в переменной Input1.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 сентября 2019" FormatDate = CDate (Input1) End Sub 

Шаг 7: И чтобы увидеть вывод, мы будем использовать Msgbox, чтобы назначить его с функцией FormatDate Date.

Код:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1 сентября 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Шаг 8: Теперь запустите код, нажав клавишу F5 или нажав кнопку воспроизведения. Мы получим дату, которую мы выбрали как 1 сентября 2019 года, теперь переведены в стандартный формат даты как 9.09.2009, как показано ниже.

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

VBA CDate - Пример № 2

В этом примере мы увидим различные типы даты и времени, которые существуют, и какой вывод мы получим при использовании VBA CDate. Для этого выполните следующие шаги:

Шаг 1: Запишите подпроцедуру VBA CDate, как показано ниже.

Код:

 Sub VBA_CDate2 () End Sub 

Шаг 2: Теперь мы объявим 3-4 различные переменные типа данных Date. Давайте объявим первую переменную как Date1 и присвоим ей тип данных как Date, как показано ниже.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date End Sub 

Шаг 3: Теперь назначьте любое число, которое мы хотим преобразовать в формате даты. Мы выбрали случайное число как 12345.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" End Sub 

Шаг 4. Аналогичным образом определите другую переменную Date2 как тип даты Date, как показано ниже.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Шаг 5: Теперь снова в переменной Date2, рассмотрите возможность размещения даты в любом формате. Здесь мы сохранили 12/3/45 в качестве даты ввода.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Шаг 6: Далее, мы снова объявим другую переменную Date3 как Date.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub 

Шаг 7: Здесь мы назначим значение любого времени, как показано ниже, как 12:10 вечера в 24-часовом формате.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Шаг 8: Теперь, наконец, мы объявим другую переменную Date4 как Date.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub 

Шаг 9: И здесь мы дадим некоторое десятичное значение, например 0, 123, или вы можете выбрать любое значение, как требуется.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Теперь есть 2 способа увидеть вывод значений, хранящихся в различных переменных, объявленных выше. MsgBox только позволит нам видеть все значения одновременно, но с помощью Debug.print позволит нам увидеть все выходные переменные за один раз.

Шаг 10: Итак, здесь лучше, если мы выберем Debug.Print, как показано ниже. И в той же строке назначьте все переменные, начиная с даты 1 до даты 4.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Отладка. Печать Дата1, Дата2, Дата3, Дата4 Конец Sub 

Шаг 11: И чтобы увидеть результат, мы будем использовать немедленное окно, как показано ниже. Чтобы получить к нему доступ, перейдите на вкладку меню «Вид» и выберите «Немедленное окно», как показано ниже.

Шаг 12: Теперь запустите код, нажав клавишу F5 или нажав кнопку воспроизведения. Мы увидим, что тип данных date дал нам вывод, но он не в стандартном формате данных.

Шаг 13: Чтобы получить стандартные данные, мы также будем использовать CDate здесь. Итак, мы назначим CDate для каждой даты и времени, которые мы использовали для разных переменных, как показано ниже.

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Шаг 14: Теперь запустите код, нажав клавишу F5 или нажав кнопку воспроизведения.

Мы увидим, что выходные данные и Date, и CDate одинаковы, но между ними есть принципиальная общая разница. Иными словами, CDate может конвертировать любые типы чисел в стандартный формат даты.

Шаг 15: Давайте попробуем любой текст или алфавит с CDate и посмотрим, что мы получим. Итак, мы ввели произвольный текст как abc в переменную Date4 .

Код:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Шаг 16: Теперь снова запустите код. Мы получим окно сообщения с сообщением об ошибке как Несоответствие типов . Это потому, что CDate не может читать и конвертировать текст в стандартный формат даты и времени.

Плюсы и минусы функции Excel VBA CDate

  • Это может преобразовать любую дату или время в стандартный формат, как требуется.
  • VBA CDate интерпретирует любое число как значение даты, а затем преобразует его в стандартный формат.
  • Он не может интерпретировать и преобразовывать текст в формат даты.

То, что нужно запомнить

  • CDate может рассматривать только числа как входные данные, но это число может быть в любом формате.
  • Текстовое значение не может быть преобразовано.
  • Если мы введем время или дату, которые уже находятся в стандартном формате, то они снова вернут то же значение, что и выходные данные.
  • Дата и функция CDate работают одинаково. Принимая во внимание, что с помощью CDate мы можем конвертировать время и дату.

Рекомендуемые статьи

Это руководство к функции VBA CDate. Здесь мы обсудим, как использовать функцию CDate в Excel с использованием кода VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Формат даты VBA
  2. Функция Excel DATEDIF
  3. VBA DateSerial
  4. Функция Excel DATEDIF

Категория: